Anˆptuxh web-based ergaleðou sullog c plhrofori n me th qr sh tou SNMP. 18 MartÐou 2010

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Anˆptuxh web-based ergaleðou sullog c plhrofori n me th qr sh tou SNMP. 18 MartÐou 2010"

Transcript

1 Anˆptuxh web-based ergaleðou sullog c plhrofori n me th qr sh tou SNMP 18 MartÐou 2010 πτυχιακή εργασία των φοιτητών: Παπαδόπουλος Χαράλαμπος <chpapa04@yahoo.co.uk>, Σιαπέρας Δημήτριος <dimis 983@yahoo.gr> Θεσσαλονίκη, Μάρτιος

2 2

3 Perieqìmena 1 Εισαγωγή Περιβάλλον ανάπτυξης Βασικές πληροφορίες εργαλείων SNMP MIB δένδρο Εξήγηση του MIB tree Κατηγορίες Ανακεφαλαίωση Οι λειτουργίες του SNMP Ιστορία του SNMP SNMP Version 1 (SNMPv1) Common PDU Format SNMPv2p SNMPv2c SNMPv2u SNMPv ΜΟΡΦΗ SNMPv Διαδικασία υλοποίησης πτυχιακής Η ροή του προγράμματος Αποτελέσματα Το μενού στην ιστοσελίδα Session στην ιστοσελίδα Λειτουργία του Session Αποτελέσματα σχετικά με το Session Cisco συσκευές CDP Εύρεση Cisco δικτύου 43 7 Περιγραφή και ανάλυση μεθόδων 51 8 Δομή ιστοσελίδας 59 9 Manual System Information ARP Table λειτουργεί σε 2 επίπεδο (TCP/IP) Routing Table Interface Interface Traffic Information TCP/IP IP ICMP TCP Active Connections TCP Algorithm UDP Host Resources

4 9.7.1 Host Resources System Host Resources Device Storage Information Running Software Information CISCO CDP network Συμπεράσματα 82 4

5 Prìlogoc Καθώς το διαδίκτυο γνώριζε μεγάλη ανάπτυξη στη δεκαετία του 1980, έπρεπε να βρεθούν τρόποι για την εποπτεία των δικτύων έτσι ώστε να αντιμετωπισθούν κάποια προβλήματα. Ενα από τα προβλήματα αυτά ήταν ο έλεγχος της ομαλής λειτουργίας των δικτυακών συσκευών από απόσταση. Πριν εμφανισθεί κάποιο πρωτόκολλο διαχείρισης δικτύου, τέτοιου είδους έλεγχοι γίνονταν με τη χρηισιμοποίηση του πρωτοκόλλου ICMP με τη βοήθεια μηνυμάτων ελέγχου προσπελασιμότητας και κατάστασης προορισμού, τα μηνύματα αίτησης/απάντησης αντήχησης και άλλα. Επίσης, όσον αφορά τον έλεγχο και την απλή διαχείριση των δικτύων, γινόταν χρήση των ifconfig, netstat, πράγμα που με την ταυτόχρονη ανάπτυξη του διαδικτύου και της τεχνολογίας, δεν ήταν πρακτικό. Μία πρώτη μορφή για την εποπτεία δικτύων, εμφανίστηκε το 1987 με την έκδοση του Simple Gateway Monitoring Protocol (SGMP). Το SGMP χρησιμοποιήθηκε για την ανάκτηση ή την αλλαγή τιμών των δρομολογητών διαδικτύου. Τα μηνύματα του SGMP, χρησιμοποιούσαν το πρωτόκολλο UDP και τη θύρα 153 για αποστολή. Περιλαμβάνει τέσσερις μορφές μηνυμάτων, οι οποίες είναι οι ακόλουθες: Get Request, για ανάκτηση πληροφοριών, Get Response, η οποία είναι η απάντηση στην αίτηση για κάποια πληροφορία και περιλαμβάνει την ίδια την πληροφορία, Trap Request, που αιτείται την απάντηση του παραλήπτη όταν συμβεί κάποιο γεγονός και Set Request, η οποία θέτει τιμές σε μεταβλητές του δρομολογητή διαδικτύου. Το πρωτόκολλο SGMP χρησιμοποιήθηκε σαν βάση για την ανάπτυξη του πρωτοκόλλου SNMP. Οι πληροφορίες που έχουν να κάνουν με το SGMP, αφορούν: Τύπους των θυρών των δρομολογητών Κατάσταση θυρών Τύπο διαδρομών Πρωτόκολλα δρομολόγησης Οι πληροφορίες που επιλέχθηκαν να συλλέγονται, είναι καθορισμένες για κάθε δικτυακή συσκευή. Αυτό συμβαίνει γιατί κάθε συσκευή έχει μία ή περισσότερες θύρες οι οποίες έχουν μια κατάσταση λειτουργίας, χρησιμοποιούν πρωτόκολλα και αποθηκευουν στατιστικές πληροφορίες που αφορούν τις θύρες. Με την έκδοση του RFC1028 για το SGMP, ξεκίνησε η ανάπτυξη του πρωτοκόλλου SNMP το οποίο δημοσιεύτηκε το 1988 και δέχθηκε ευρείας αποδοχής. Το Simple Network Management Protocol (SNMP) είναι ένα πρωτόκολλο το οποίο χρησιμοποιείται ευρέως για τη συλλογή πληροφοριών από δικτυακές συσκευές. Το τελευταίο λειτουργεί μέσω μιας δενδροειδούς δομής, τη βάση δεδομένων διαχείρισης πληροφοριών (MIB), που κατηγοριοποιεί όλες τις πιθανές πληροφορίες που μπορούμε να λάβουμε από διάφορες συσκευές δικτύων. 5

6 6

7 PerÐlhyh Με την παρούσα πτυχιακή εργασία δημιουργήθηκε ένα web based εργαλείο συλλογής πληροφοριών. Σκοπός της εφαρμογής αυτής είναι η συλλογή χρήσιμων πληροφοριών από δικτυακές συσκευές. Η λήψη αυτών των πληροφοριών έγινε με τη χρήση του πρωτοκόλλου SNMP ( Simple Network Management Protocol). Στο πρώτο κεφάλαιο γίνεται αναφορά στα εργαλεία που χρησιμοποιήθηκαν για τη δημιουργία της εφαρμογής, καθώς και μια μικρή περιγραφή για το καθένα απο αυτά. Στο δεύτερο κεφάλαιο γίνεται εισαγωγή στο πρωτόκολλο SNMP και επεξήγηση των βασικών εννοιών που το χαρακτηρίζουν. Στη συνέχεια περιγράφεται ο τρόπος οργάνωσης των διαθέσιμων πληροφοριών μέσω του δένδρου MIB και αναφέρονται οι βασικές λειτουργίες του πρωτοκόλλου. Στο τρίτο κεφάλαιο πραγματοποιείται ιστορική αναδρομή στο SNMP και επεξήγηση των λειτουργιών των βασικών εκδόσεων του SNMP καθώς και περιγραφή του SNMP PDU της κάθε έκδοσης. Στο τέταρτο κεφάλαιο αναλύεται η διαδικασία υλοποίησης της εφαρμογής. Γίνεται περιγραφή της διαδικασίας ελέγχου και χρήσης της IP διεύθυνσης και του community name. Στη συνέχεια επεξηγείται η ροή του προγράμματος και ο τρόπος λήψης και εμφάνισης των πληροφοριών. Επισής δίνονται πληροφορίες σχετικά με το μενού που χρησιμοποιήθηκε στην εφαρμογή και τέλος, ανάλυση της χρήσης του Session στην ιστοσελίδα. Στο πέμπτο κεφάλαιο γίνεται περιγραφή του πρωτοκόλλου CDP της εταιρίας Cisco. Στο έκτο κεφάλαιο περιγράφεται ο τρόπος ανεύρεσης του CDP δικτύου καθώς και οι συναρτήσεις που χρησιμοποιήθηκαν για την οργάνωση των χρήσιμων πληροφοριών αυτού. Στο έβδομο κεφάλαιο γίνεται αναφορά των συναρτήσεων που χρησιμοποιήθηκαν στην εφαρμογή και επεξηγείται ο τρόπος λειτουργίας τους. Στο όγδοο κεφάλαιο δίνεται η δομή της ιστοσελίδας και οι πληροφορίες εγκαταστασής της σε κάποιο server. Στο ένατο κεφάλαιο παρατίθεται ο οδηγός (manual) της ιστοσελίδας. Τέλος, δίνονται κάποια συμπερασματικά στοιχεία σχετικά με το δίκτυο του ΤΕΙ. 7

8 8

9 Abstract This thesis is about the creation of a web based information collector tool. The purpose of this application is the collection of information from network devices. Obtaining such information was done by using the protocol SNMP (Simple Network Management Protocol). The first chapter refers to the tools that have been used to create the application. A short description of each tool is also included. The second chapter is an introduction to the SNMP protocol and expains the basic concepts which characterize that protocol. It continues with the description of the organised structure of the available information through the Management Information Base tree and the essential functions of the protocol are refered. The third chapter describes the history of the SNMP and explains the functions of the basic versions of SNMP and an SNMP PDU description is being made. The fourth chapter discusses the implementation process of the application. A description of the control and use of IP addresses and community name is being made. Then, the flow of the application, the reception and the display of the useful information, is explained. Also Information is given for the menu which is used in the implementation of the application and finally, an analysis of the use of Session on the site is being made. The fifth chapter contains a description of the Cisco protocol, CDP and the sixth chapter describes how to find the CDP network and the functions used to organize this useful information. In the seventh chapter a reference of the functions used in the application and their operation is explained. In the eighth chapter, the structure of the website is given as well as information about the installation process in a server. In the ninth chapter, the manual of the application is given. Finally, in the tenth chapter, some statistical information about the Technological Educational Institute of Thessaloniki network is given. 9

10 10

11 1 Eisagwg Το θέμα της εργασίας αυτής είναι η ανάπτυξη ενός web-based εργαλείου συλλογής πληροφοριών με τη χρήση του SNMP. Η δημιουργία του εργαλείου αυτού έγινε με τη βοήθεια της PHP, της HTML, του Smarty καθώς και του CSS για θέματα εμφάνισης ενώ η συλλογή των απαραίτητων πληροφοριών πραγματοποιήθηκε μέσω του net-snmp καθώς και του phpsnmp. Η ανάλυση των παραπάνω παρατίθεται στις επόμενες σελίδες ενώ δίνονται και πληροφορίες σχετικά με τον αριθμό των εκδόσεων. Επίσης,θα ακολουθήσει ανάλυση ως προς το πώς χρησιμοποιήσαμε το netsnmp και το phpsnmp μέσω της php καθώς και ποιες διαδικασίες ακολουθήσαμε ώστε να πάρουμε το επιθυμητό αποτέλεσμα. Επίσης θα δοθούν πληροφορίες σχετικές με την επεξεργασία και την εμφάνιση των δεδομένων που συλλέξαμε. Στη συνέχεια, θα αναλυθούν κάποια κύρια προβλήματα που αντιμετωπίσαμε κατά τη δημιουργία αυτού του web-based εργαλείου. Τα προβλήματα αυτά μπορεί να είναι λογικά ή προγραμματιστικά. Τέλος, θα δοθεί ένας οδηγός (manual) στον οποίο αναλύονται οι διαδικασίες που πρέπει να ακολουθηθούν για να πάρει ένας απλός χρήστης ή ένας διαχειριστής δικτύου το επιθυμητό αποτέλεσμα. Ειδικότερα για τους απλούς χρήστες θα δοθεί και μια μικρή ανάλυση του κάθε πίνακα που μπορεί να εμφανιστεί. 1.1 Peribˆllon anˆptuxhc Η ανάπτυξη της εφαρμογής πραγματοποιήθηκε σε περιβάλλον Linux και συγκεκριμένα στην έκδοση UBUNTU Για την αρχική ανάπτυξη της εφαρμογής εγκαταστάθηκε ο Apache server έκδοση 2.0, τόσο για τον έλεγχο των πρώτων σταδίων της υλοποίησης του προγράμματος όσο και για τη διενέργεια των αρχικών δοκιμών μας. Το αρχικό τοπικό δίκτυο που χρησιμοποιήθηκε αποτελούνταν από τρεις υπολογιστές και ένα ADSL router. Στα πρώτα στάδια για την ανάπτυξη του κώδικα της εφαρμογής χρησιμοποιήθηκε η PHP έκδοση 5 καθώς και η HTML ενώ στα επόμενα στάδια ο κώδικας επαναδιατυπώθηκε με τη χρήση του Smarty για τον πλήρη διαχωρισμό της HTML από την PHP. Για τη συλλογή των πληροφοριών του δικτύου χρησιμοποιήθηκε το πακέτο net-snmp μέσω της PHP. Με αυτόν τον τρόπο λαμβάνουμε τις πληροφορίες των δικτυακών συσκευών του δικτύου. Στη συνέχεια χρησιμοποιήθηκε ένα δεύτερο πακέτο, το php-snmp, λόγω των συγκεκριμένων δυνατοτήτων που μας παρέχει. Οι λόγοι χρήσης του κάθε πακέτου θα αναλυθούν εκτενώς στα επόμενα κεφάλαια. Για την μορφοποίηση της σελίδας χρησιμοποιήθηκε το CSS ( Cascading Style Sheets). 11

12 1.2 Basikèc plhroforðec ergaleðwn Αρχικά παρατίθεται ο ορισμός της PHP, η οποία είναι μια ευρέως διαδεδομένη γλώσσα προγραμματισμού για τη δημιουργία ιστοσελίδων με δυναμικό περιεχόμενο και μπορεί να ενσωματωθεί μέσα σε HTML. Η PHP δημιουργήθηκε το 1995 από τον Rasmus Lerdorf για προσωπική του χρήση χρησιμοποιώντας τη γλώσσα Perl. Η πρώτη της χρήση αφορούσε τη μέτρηση και την αποθήκευση της κίνησης στη σελίδα του και αρχικά ονομαζόταν personal home page tools. Αργότερα έγραψε πολλά προγράμματα σε γλώσσα C, τα οποία μπορούσαν να επικοινωνήσουν με βάση δεδομένων ενώ ταυτόχρονα ε- πέτρεψε στους χρήστες να αναπτύξουν απλές δυναμικές ιστοσελίδες. Αποφάσισε ακόμα, να διαθέσει στο κοινό τον πηγαίο κώδικα της php/fi ώστε να μπορούν να τον χρησιμοποιήσουν όλοι. Η πρώτη επίσημη έκδοση παρουσιάστηκε στις 8 Ιουνίου 1995 και ονομαζόταν PHP Version 2. Στη συνέχεια οι δύο Ισραηλινοί Zeev Suraski και Andi Gutmans βελτίωσαν την υπάρχουσα έκδοση της PHP και το 1997 εκδόθηκε η PHP Version 3 όπου PHP σημαίνει Hypertext Preprocessor. Η επίσημη έκδοση της version 3 έγινε εννιά μήνες μετά την πρώτη δημόσια κυκλοφορία. Για τη δημιουργία της έκδοσης 4 ( Μάιος 2000) και έκδοσης 5 ( Ιούλιος 2004) αναδιαρθρώθηκε ο πυρήνας της PHP, ο οποίος πήρε το όνομα Zend από τα αρχικά των μικρών ονομάτων των δημιουργών της κι έτσι οριστικοποιήθηκε η PHP στη σημερινή της μορφή. Η παρούσα εφαρμογή βασίστηκε στην PHP έκδοση Το smarty είναι μια μηχανή προτύπων για την PHP. Στην ουσία διαχωρίζει τη λογική της εφαρμογής από την παρουσίαση. Ενα από τα κύρια πλεονεκτήματα είναι ότι μεταφράζει ξεχωριστά και μόνο σε περίπτωση αλλαγών τα μεταφράζει ξανά. Η λογική είναι ότι μπορείς να ασχοληθείς χωριστά με τον κώδικα της εφαρμογής και σε διαφορετικό αρχείο να ασχοληθείς με την παρουσίαση της εφαρμογής έτσι ώστε να επικεντρωνόμαστε σε κάθε πρόβλημα ξεχωριστά. Μια άλλη δυνατότητα που παρέχει το smarty είναι ότι είναι πολύ γρήγορο και παράλληλα με τη χρήση πολλών διαδικασιών (functions) και μεταβλητών (variables) μπορούμε να επεκτείνουμε τη χρήση του εκμεταλλευόμενοι τις πολλές δυνατότητες που μας προσφέρει. Για την εφαρμογή μας χρησιμοποιήσαμε την έκδοση του Smarty. Για τη συλλογή των πληροφοριών από το δίκτυο προχωρήσαμε στη χρήση του πρωτοκόλλου SNMP μέσω της PHP. Το πρώτο πακέτο που χρησιμοποιήθηκε είναι το net-snmp έτσι ώστε να γίνει δυνατή η λήψη πληροφορίων από μία συγκεκριμένη συσκευή κάθε φορά. Για την παραπάνω διαδικασία, καθώς και την εμφάνιση των πληροφοριών, τα SNMP ερωτήματα ενσωματώθηκαν μέσα στην PHP. Στη συνέχεια, για να είναι εφικτή η λήψη πληροφορίων από πολλές συσκευές και σε σύντομο χρονικό διάστημα χρησιμοποιήθηκε το php-snmp. Μια από τις βασικές λειτουργίες του τελευταίου είναι η αποστολή ενός SNMP αιτήματος σε πολλές συσκευές ταυτόχρονα ή η αποστολή πολλών SNMP αιτημάτων σε μια συσκευή. Ακολούθως, γίνεται εκτενέστερη αναφορά σχετικά με το net-snmp και με το phpsnmp δίνονται παραδείγματα για το πώς μπορούμε να θέτουμε ερωτήματα σε μια συσκευή ή σε περισσότερες. 12

13 2 SNMP Οπως αναφέρθηκε ήδη, το πρωτόκολλο που χρησιμοποιήθηκε για τη λήψη των επιθυμητών πληροφοριών, είναι το Simple Management Network Protocol (SNMP). Σε αυτήν την ενότητα αναλύεται η λειτουργία του πρωτοκόλλου αυτού, καθώς και οι υπάρχουσες εκδόσεις του (SNMPv1, SNMPv2 και SNMPv3). Τέλος, εξηγούνται οι λόγοι για τη χρήση της έκδοσης SNMPv2, SNMPv2c στην παρούσα εφαρμογή. Το πρωτόκολλο διαχείρισης απλών δικτύων (SNMP) είναι ένα πρωτόκολλο εποπτείας συσκευών δικτύου και συλλογής πληροφοριών απόδοσης για τις βάσεις δεδομένων διαχείρισης πληροφοριών (ΜΙΒ). Εχει σχεδιαστεί με βάση το TCP/IP και λειτουργεί στο επίπεδο εφαρμογών. TCP/IP Architecture Layer Application Transport Inter network Network interface Protocols HTTP, POP3, SMTP, SNMP, DNS, FTP TCP, UDP IP, ARP, RARP, ICMP Ethernet, Frame Relay Το SNMP χρησιμοποιεί UDP πακέτα για την αποστολή αιτημάτων στις συσκευές δικτύου και αποτελείται από τρία βασικά μέρη: 1. Διαχειρίσιμες συσκευές (managed devices) 2. Πράκτορες (agents) 3. Σταθμοί διαχείρισης δικτύου (network management stations) Οι managed devices είναι οι συσκευές από τις οποίες θέλουμε να πάρουμε πληροφορίες. Οι πληροφορίες που λαμβάνουμε γίνονται άμεσα διαθέσιμες στους network management stations (NMS). Οι NMS είναι οι σταθμοί όπου καταλήγουν οι πληροφορίες οι οποίες λαμβάνονται απο τις διαχειρίσιμες συσκευές. Αξίζει να σημειωθεί ότι δεν είναι απαραίτητο να υπάρχει μόνο ένα NMS σε κάθε δίκτυο. Μερικά παραδείγματα διαχειρίσιμων συσκευών είναι: οι routers, τα switches, τα ip-phones, οι υπολογιστές, οι εκτυπωτές κλπ. Ενας agent είναι ένα λογισμικό το οποίο είναι εγκατεστημένο σε κάθε συσκευή απ' την οποία θέλουμε να παίρνουμε πληροφορίες. Το λογισμικό αυτό γνωρίζει τις απαραίτητες πληροφορίες της συγκεκριμένης συσκευής και όταν ο χρήστης κάνει ένα αίτημα σε αυτή, ο agent μετατρέπει την πληροφορία σε συμβατή μορφή χρησιμοποιώντας το SNMP. Το SNMP χρησιμοποιεί ένα δικό του τρόπο για την οργάνωση των διαθέσιμων πληροφοριών προκειμένου να οργανώσει τις πληροφορίες που επιθυμεί να λάβει. Αυτό γίνεται μέσω των MIBs (Management Information Bases) τα οποία περιγράφουν τη δομή των διαχειρίσιμων πληροφοριών. Τα MIBs χρησιμοποιούν ένα ιεραρχικό τρόπο για την κατηγοριοποίηση του κάθε στοιχείου που θέλουμε να πάρουμε. Το κάθε στοιχείο δηλώνεται μοναδικά και ονομάζεται OID ( Object Identifier). 13

14 Προκειμένου να γίνει κατανοητή η λειτουργία του MIB θα πρέπει να εξηγηθεί καλύτερα τι είναι τα OID. Ενα OID είναι η τελική διαδρομή που δείχνει το που μπορεί να βρεθεί το επιθυμητό στοιχείο και εκπροσωπείται από ένα σύνολο αριθμών χωρισμένων με τελείες. Π.χ Τα OID αντιπροσωπεύουν ένα πλήθος πληροφοριών, αλλά το κάθε OID είναι μοναδικό, πράγμα που συνεπάγεται οτι αντιστοιχεί μόνο σε μία συγκεκριμένη πληροφορία ή έναν πίνακα πληροφοριών. Το δέντρο των MIB περιγράφει τα εκάστοτε OID. 2.1 MIB dèndro Το δέντρο των MIB είναι μια δομή η οποία κατηγοριοποιεί όλα τα OID ιεραρχικά. Για την ανεύρεση του συγκεκριμένου OID πρέπει να ανατρέξουμε από τη ρίζα του δέντρου προς το συγκεκριμένο αντικείμενο. Το κάθε στοιχείο του δέντρου αντιπροσωπεύεται από έναν αριθμό. Η διαδρομή από τη ρίζα μέχρι το ζητούμενο στοιχείο είναι το σύνολο των αριθμών που αναφέραμε παραπάνω και ονομάζεται OID. Για παράδειγμα, η διαδρομή που μας δείχνει την ώρα μιας συσκευής είναι η εξής: Το κάθε νούμερο της διαδρομής αυτής αντιστοιχεί σε μια υποκατηγορία/επίπεδο του δέντρου: iso(1).indent-org(3).dod(6).internet(1).mgmt(2).mib(1).system(1).sysuptime(3). Παίρνοντας μόνο τους αριθμούς και χρησιμοποιώντας τις κατάλληλες εντολές μπορούμε να πάρουμε τη συγκεκριμένη πληροφορία. Το δέντρο των MIB μοιάζει με το παρακάτω: Ακολουθώντας τα διαθέσιμα νούμερα παρατηρείται μέχρι ενός σημείου η επιθυμητή διαδρομή. Σημειώνεται οτι δεν είναι φανερή ολόκληρη η διαδρομή καθώς 14

15 το MIB είναι πάρα πολύ μεγάλο, οπότε δεν είναι δυνατόν να παρουσιασθεί σε όλη του την έκταση. 2.2 Ex ghsh tou MIB tree Οπως είναι εμφανές η ρίζα του δέντρου είναι κενή. Οι «μεταβλητές» που υπάρχουν στο MIB δένδρο είναι επεκτάσιμες. Αυτό σημαίνει ότι οι κατασκευαστές μπορούν να προσθέσουν νέες μεταβλητές στο δένδρο. Το δένδρο ΜΙΒ είναι το ίδιο παγκοσμίως και συντηρείται από τον ISO (International Standards Organization). 2.3 KathgorÐec Οι συσκευές δικτύων δεν είναι όλες κατασκευασμένες από έναν κατασκευαστή, ενώ τα χαρακτηριστικά των συσκευών δικτύων ποικίλλουν μεταξύ των κατασκευαστών. Επίσης οι συσκευές δεν είναι όλες ίδιες ως προς τις λειτουργίες τους. Η χρήση του SNMP θα πρέπει να πραγματοποιείται ανεξάρτητα απο το γεγονός αυτό. Αυτή είναι δουλειά του δένδρου και των κατασκευαστών. Στο MIB δένδρο υπάρχουν κατηγορίες ανάλογα με τον τύπο των συσκευών αλλά και ανάλογα με τον κατασκευαστή αν αυτό είναι επιθυμητό από τον ίδιο τον κατασκευαστή. Πέρα από τις γενικές πληροφορίες μπορούν οι κατασκευαστές να προσθέσουν τα δικά τους OID ανάλογα ανάλογα με τα χαρακτηριστικά των συσκευών που κατασκευάζουν. Ετσι, όπως γίνεται εμφανές και στην εικόνα του MIB δένδρου, έχουν δοθεί «διαδρομές» OIDS που ανήκουν σε κατασκευαστές. Για παράδειγμα, για να πάρουμε πληροφορίες από μία Cisco συσκευή που αφορά το πρωτόκολλο CDP που μόνο οι συσκευές της Cisco χρησιμοποιούν, θα πρέπει να βρούμε τη διαδρομή που έχει καθορίσει η ίδια η Cisco για να πάρουμε αυτήν την πληροφορία. Ετσι, για τη συγκεκριμένη πληροφορία θα πρέπει να δοθεί η παρακάτω διαδρομή: Χ (όπου Χ, η πληροφορία της συσκευής) η οποία διαδρομή μεταφράζεται ως: iso(1).indent-org(3).dod(6).internet(1).private(4).enterprise(1).cisco(9).[πληροφορία που θέλουμε] Παρατηρούμε ότι υπάρχει η κατηγορία private, σε υποκατηγορίες της οποίας υ- πάρχουν τα ΜΙΒs των κατασκευαστών. Πέρα από τους διάφορους κατασκευαστές, το MIB δένδρο περιέχει τις γενικές πληροφορίες που είναι διαθέσιμες. Πολλές από αυτές είναι κοινές σε συσκευές δικτύου και ανεξάρτητες από τον κατασκευαστή της συσκευής. Για παράδειγμα, σε περίπτωση που θέλουμε να πάρουμε πληροφορίες όπως την ώρα του συστήματος ή την ηλεκτρονική διεύθυνση του διαχειριστή από κάποιες συσκευές, θα πρέπει να γίνει από τη διαδρομή προς τις πληροφορίες συστήματος. Η διαδρομή αυτή είναι: η οποία μεταφράζεται ως: Χ 15

16 i s o ( 1 ). org ( 3 ). dod ( 6 ). i n t e r n e t ( 1 ). mgmt( 2 ). mib ( 1 ). system ( 1 ). [ i n f o r m a t i o n we want ] και μας δίνει πρόσβαση στις πληροφορίες συστήματος. Ωστόσο, μέσω της παραπάνω διαδρομής, παρέχεται η δυνατότητα να ληφθούν και άλλου είδους πληροφορίες. Αν θέλουμε για παράδειγμα, να πάρουμε πληροφορίες που αφορούν τη δικτυακή λειτουργία της συγκεκριμένης συσκευής σε όλα τα επίπεδα (μοντέλο TCP/IP), μπορούμε μέσω του δένδρου να βρούμε τις κατάλληλες διαδρομές προς αυτήν την πληροφορία. Αν λοιπόν αντικατασταθεί από την προηγούμενη διαδρομή το system(1) και χρησιμοποιηθεί από το δένδρο κάποιο άλλο νούμερο (που αντιπροσωπεύει μια διαφορετική κατηγορία), έχουμε τη δυνατότητα λήψης τέτοιου είδους πληροφοριών. Παρακάτω παρουσιάζονται κάποιες από τις κατηγορίες της διαδρομής : OID iso(1).org(3).dod(6).internet(1).mgmt(2).mib(1).interfaces(2) iso(1).org(3).dod(6).internet(1).mgmt(2).mib(1).at(3) iso(1).org(3).dod(6).internet(1).mgmt(2).mib(1).ip(4) iso(1).org(3).dod(6).internet(1).mgmt(2).mib(1).icmp(5) iso(1).org(3).dod(6).internet(1).mgmt(2).mib(1).tcp(6) iso(1).org(3).dod(6).internet(1).mgmt(2).mib(1).udp(7) iso(1).org(3).dod(6).internet(1).mgmt(2).mib(1).transmission(10) iso(1).org(3).dod(6).internet(1).mgmt(2).mib(1).snmp(11) Οπως φαίνεται και από το όνομα της κάθε διαδρομής, είναι κατανοητό το είδος των πληροφοριών που μπορούν να ληφθούν από κάθε κατηγορία. Για παράδειγμα, αν επιθυμούμε τη συλλογή πληροφοριών που αφορούν τις θύρες μιας δικτυακής συσκευής, όπως ένας δρομολογητής, θα επιλέξουμε τη διαδρομή Χ. Αξίζει να τονισθεί ότι οι διαδρομές που χρησιμοποιήθηκαν έως τώρα, αναφέρονται σε κατηγόριες και όχι σε συγκεκριμένες τιμές. Ετσι, για τη λήψη μιας συγκεκριμένης πληροφορίας από την κατηγορία των θυρών που χρησιμοποιήθηκαν προηγουμένως, είναι απαραίτητο να δωθεί και ο αριθμός που θα καθορίζει ποια πληροφορία επιθυμούμε Ανακεφαλαίωση Το SNMP χρησιμοποιεί το δένδρο ΜΙΒ για να οργανώσει ιεραρχικά τις διαθέσιμες πληροφορίες που μπορεί να λάβει ένα NMS. Το Δένδρο ΜΙΒ είναι ένα δένδρο που έχει κενό όνομα ρίζας και κάθε στοιχείο του αντιπροσωπεύεται από έναν αριθμό. Μια διαδρομή ΜΙΒ μας δείχνει τον δρόμο προς την πληροφορία που θέλουμε και αντιπροσωπεύεται απο τα ονόματα των κατηγοριών, χωρισμένα με τελείες. Αν αντικαταστήσουμε τα ονόματα των κατηγοριών με τους αντίστοιχους αριθμούς, 16

17 τότε θα έχουμε το OID της διαδρομής μας. Το δένδρο είναι υπό την επίβλεψη του ISO και είναι κοινό σε ολόκληρο τον κόσμο. 2.4 Oi leitourgðec tou SNMP Παρακάτω παρατίθενται κάποιες από τις βασικές λειτουργίες του SNMP. Το SNMP υποστηρίζει κυρίως 3 τύπους εντολών. 1. Read 2. Write 3. Trap Η λειτουργία read του SNMP χρησιμοποιείται από τις συσκευές διαχείρισης (NMS) για τη λήψη των πληροφοριών που επιθυμεί ο κάθε χρήστης. Η λειτουργία write, χρησιμοποιείται για τη διαχείριση των συσκευών από τα NMS, ενώ παρέχει και τη δυνατότητα αλλαγής τιμών που υπάρχουν στο MIB δένδρο. Η λειτουργία trap χρησιμοποιείται για να ενημερώσει τους NMS για συγκεκριμένα γεγονότα που λαμβάνουν χώρα σε μία ή περισσότερες συσκευές δικτύου. Η διαδικασία είναι η εξής, καθορίζουμε το γεγονός το οποίο θα προκαλέσει την trap, καθορίζουμε το εύρος των συσκευών που μπορούν να προκαλέσουν μια trap. Μόλις πραγματοποιηθεί αυτό το συγκεκριμένο γεγονός, το managed system δημιουργεί μια trap και την αποστέλλει στο NMS. Στην ουσία μία trap (παγίδα) είναι μία αναφορά προς τον NMS από τις Managed Systems, που δημιουργείται και αποστέλλεται όταν συμβούν συγκεκριμένα γεγονότα. 17

18 3 IstorÐa tou SNMP Η ιστορία του SNMP ξεκίνησε το Ιδρυτής ήταν ο Jeffrey Case ο οποίος το 1987 ήταν διαχειριστής δικτύων και καθηγητής της επιστήμης της πληροφορικής στο πανεπιστήμιο του Tennessee. Το 1988 μαζί με τον Ken Key, ο οποίος ήταν απόφοιτος πληροφορικής και στη συνέχεια συνεργάτης του Case, δημιούργησαν το πρωτόκολλο διαχείρισης δικτύων. Αρχικά, είχε δημιουργηθεί το SGMP (Simple Gateway Management Protocol), το οποίο το 1988 αναδημιουργήθηκε και ονομάστηκε SNMP. Η κύρια λειτουργία του ήταν η διαχείριση και εποπτεία δικτύων και συσκευών δικτύων. Το SNMP χρησιμοποιεί το μοντέλο managed device, agent, network-management systems (NMSs). Οι managed device είναι κάποιες συσκευές δικτύου οι οποίες περιέχουν ένα snmp agent. Στον υπολογιστή, μέσω του οποίου θα γίνει η διαχείριση των συσκευών, υπάρχει το λογισμικό διαχείρισης του SNMP, ενώ στις συσκευές που θέλουμε να διαχειριστούμε υπάρχει εγκατεστημένο το λογισμικό του agent. Η επικοινωνία μεταξύ των συσκευών γίνεται μέσω του πρωτοκόλλου SNMP. Το SNMP λειτουργεί στο επίπεδο εφαρμογών του TCP/IP. Τα μηνύματα στέλνονται μέσω UDP και χρησιμοποιούνται εξ ορισμού τα UDP ports 161 για τα αιτήματα και τις απαντήσεις, και 162,για τα trap (παγίδες). Η αρχική έκδοση του SNMP ήταν η SNMPv1 που χρησιμοποιούσε τα βασικά αιτήματα/ απαντήσεις, οι οποίες είναι οι ακόλουθες: get-request, set-request, getnext-request, get-response και trap. Το SNMPv1 περιγράφεται από το RFC Από το NMS στέλνονται τα αιτήματα και οι agent επιστρέφουν τις απαντήσεις. Οπως έχει ήδη αναφερθεί τα βασικά ερωτήματα είναι τα get, set, getnext, get-response και trap. Το πακέτο SNMPv1 αποτελείται από δύο μέρη, την κεφαλίδα (header) και το SNMP PDU. Η κεφαλίδα περιέχει δύο πεδία: τον αριθμό έκδοσης και το community name. Ο αριθμός έκδοσης περιγράφει την έκδοση του SNMP που χρησιμοποιεί το πακέτο. Το community name χρησιμοποιείται για την ασφάλεια των συσκευών και το SNMP το χρησιμοποιεί σαν κωδικό ώστε να έχει πρόσβαση ο διαχειριστής στη συσκευή. Συνήθως, χρησιμοποιείται σε περιοχές διαχείρισης στις οποίες όλες οι συσκευές έχουν το ίδιο community name, όπως για παράδειγμα τα router και switches σε μια εταιρία όπου εξ ορισμού το community name είναι public. Σε περίπτωση λανθασμένου community name δεν είναι δυνατό να πάρουμε πληροφορίες από τη συσκευή, γι αυτό λέγεται ότι είναι σαν μια αδύναμη μορφή αυθεντικοποίησης. Το SNMP PDU περιλαμβάνει πέντε πεδία από τα οποία τα τέσσερα είναι σταθερού μήκους 32 bit και το πέμπτο μεταβλητού μεγέθους. Το πρώτο πεδίο είναι το PDU type (pdu τύπος), το οποίο είναι ένας ακέραιος αριθμός που μας δείχνει τον τύπο του SNMP μηνύματος. Οι τιμές που παίρνει είναι από μηδέν έως τρία. 0 - GetRequest-PDU χρησιμοποιείται μόνο από τον NMS για τη συλλογή ενός ή περισσότερων στιγμιότυπων από έναν agent. Σε περίπτωση που δεν υπάρχει το συγκεκριμένο στιγμιότυπο που ζητάμε στον agent ή δε μπορεί να πάρει απάντηση, τότε δεν παρέχει καμία πληροφορία οπότε και επιστρέφει κενό μήνυμα. 1 GetNextRequest χρησιμοποιείται από το NMS στον agent για να επιστρέψει το αμέσως επόμενο στιγμιότυπο από το OID που περιέχει το πακέτο. Δηλαδή, στέλνοντας ένα GetNextRequest είναι σα να στέλνουμε πολλά GetRequest, καθένα από το οποίο ζητάει την αμέσως επόμενη τιμή του προηγούμενου αιτήματος, πράγμα που συνεχίζεται μέχρι την τελευταία εγγραφή 18

19 του πίνακα. Μόλις τελειώσει ο πίνακας στέλνεται ένα μήνυμα που υποδηλώνει ότι ο πίνακας έχει ολοκληρωθεί και δε ζητάει πλέον πληροφορίες. 2 GetResponse-PDU το μήνυμα αυτό δημιουργείται στον agent και είναι η απάντηση στα μηνύματα get που στέλνονται από τον agent στον manager. 3 SetRequest αποστέλλεται από τον manager στον agent για να θέσουμε τιμές σε στιγμιότυπα αντικειμένων. Το επόμενο πεδίο είναι το Request Identifier το οποίο είναι ένας αριθμός που δημιουργεί ο manager όταν πρόκειται να στείλει ένα αίτημα και τον αντιγράφει ο agent στην απάντηση. Το error status είναι ένας ακέραιος αριθμός που χρησιμοποιείται επίσης από τον agent στην απάντηση για να ενημερώσει το manager για το αποτέλεσμα του αιτήματος. Παίρνει τις ακόλουθες έξι τιμές. 0 noerror υποδεικνύει ότι δε συνέβη κανένα σφάλμα. Επίσης χρησιμοποιείται σε όλα τα αιτήματα γιατί γίνεται να αναφερθεί κάτι λάθος σε αυτά. 1 toobig υποδεικνύει ότι το μέγεθος της απάντησης είναι πολύ μεγάλο για να μεταφερθεί. 2 nosuchname το όνομα του αντικειμένου που ζητήθηκε δεν υπάρχει. 3 badvalue η τιμή στην αίτηση δεν είναι ίδιου τύπου με αυτή που είχε ζητήσει ο παραλήπτης. 4 readonly υποδεικνύει ότι στάλθηκε ένα setrequest αίτημα σε μια μεταβλητή που είναι μόνο για ανάγνωση (read only). 5 generr υποδεικνύει ότι έγινε κάποιο διαφορετικό σφάλμα από τα προαναφερθέντα. Error Index. Οταν το πεδίο error status (κατάσταση λάθους) δεν είναι μηδέν, συνεπάγεται ότι το πεδίο αυτό περιέχει ένα δείκτη που μας λέει ποιο αντικείμενο δημιούργησε το λάθος. Variable Bindings περιέχει ζευγάρια ονόματος και τιμής. Πιο συγκεκριμένα, το όνομα αντιπροσωπεύει το όνομα του αντικειμένου που θέλουμε (MIB Object) και η τιμή αντιπροσωπεύει τη ζητούμενη πληροφορία. Τα ζευγάρια αυτά υπάρχουν μόνο σε απαντήσεις ενώ στα set και τα get περιέχεται απλώς το όνομα που ζητάμε. 3.1 SNMP Version 1 (SNMPv1) Common PDU Format Η SNMP Version 1 χρησιμοποιήθηκε για αρκετά χρόνια. Σταδιακά παρατηρήθηκαν κάποια προβλήματα και κάποιοι τομείς απαιτούσαν βελτίωση. Αυτό οδήγησε στην ανάπτυξη του SNMP Version 2 το οποίο βελτίωσε το SNMPv1 σε πολλούς τομείς όπως για παράδειγμα, στους καθορισμούς των αντικειμένων του ΜΙΒ, στις λειτουργίες πρωτοκόλλου και στην ασφάλεια. Η αρχική έκδοση του SNMPv2 έγινε το 1993 και παρείχε κάποιες βελτιώσεις σε σχέση με την πρώτη έκδοση του SNMP. Οι βασικές λειτουργίες παρέμειναν ίδιες (get και set) και απλά προστέθηκαν άλλες δυο, (οι οποίες είναι) η getbulk και η Inform. 19

20 Μετά την έκδοση του SNMPv1 παρατηρήθηκε ότι υπήρχε μεγάλο πρόβλημα στον τομέα της ασφάλειας. Για το λόγο αυτό αμέσως μετά την έκδοση του ξεκίνησε η ανάπτυξη μιας νέας έκδοσης η οποία θα διόρθωνε το παραπάνω πρόβλημα. Αρχικά, ανέκυψαν διαφωνίες ως προς τον τρόπο αντιμετώπισης της μειωμένης ασφάλειας, που χαρακτήριζε τη νέα έκδοση του SNMP. Ετσι, το 1992 εκδόθηκε το SNMPsec το οποίο χρησιμοποιούσε ένα νέο μηχανισμό ασφάλειας. Αυτός ο μηχανισμός παρείχε μεγαλύτερη ασφάλεια από την πρώτη έκδοση του SNMP αλλά δεν έτυχε ποτέ ευρείας αποδοχής και πλέον δε χρησιμοποιείται. Αν και το SNMPsec δε χρησιμοποιήθηκε, η ιδέα του μηχανισμού ασφάλειας που χρησιμοποιούσε (party based security) έγινε η βάση για την ανάπτυξη της πλήρης έκδοσης του νέου SNMP κι έτσι τον Απρίλιο του 1993 κυκλοφόρησε για πρώτη φορά η δεύτερη έκδοση του πρωτοκόλλου. Δυστυχώς όμως, και αυτή η έκδοση δεν έγινε αποδεκτή παγκοσμίως. Συνεπώς, κάποιες επιτροπές ξεκίνησαν την ανάπτυξη διαφορετικών εκδοχών του SNMPv2. Η βασική έκδοση είναι η SNMPv2p όπου με το p να αναφέρεται στο party based security το οποίο θα αναλυθεί παρακάτω. Εχουν κυκλοφορήσει τρεις βασικές εκδοχές οι οποίες είναι: 1. Η SNMPv1.5, που προσπάθησε να λύσει κάποια προβλήματα το SNMPv2p, ήταν ο πρόγονος του SNMPv2c και χρησιμοποιεί τη μέθοδο των community strings όπως και η v1. 2. Η SNMPv2c η οποία χρησιμοποιεί τα community strings αντί για το party based security. 3. Η SNMPv2u (user based), η οποία χρησιμοποιεί τους χρήστες αντί για τα community strings. Θεωρείται πιο απλή από την party based αλλά και πιο ασφαλής από την community strings security. Καθορίζεται από τα RFC1909 και RFC1910 και βρίσκεται επίσημα σε πειραματικό στάδιο. Λόγω αυτών των διαφορετικών εκδόσεων δεν υπάρχει μόνο ένα PDU της version 2. Παρακάτω θα γίνει η ανάλυση του μηνύματος των τριών βασικών εκδόσεων του SNMP της SNMPv2p, SNMPv2c και της SNMPv2u. 20

21 3.2 SNMPv2p Το πρώτο πεδίο είναι ο αριθμός έκδοσης (version). Μεγέθους 32bit και χρησιμοποιείται για να διασφαλιστεί η συμβατότητα μεταξύ των εκδόσεων. Για το SNMPv2p η τιμή είναι 2. Το επόμενο πεδίο είναι το Destination Party το οποίο χρησιμοποιείται από τον party based μηχανισμό ασφάλειας προκειμένου να βρεθεί ο προορισμός του μηνύματος. Στη συνέχεια υπάρχει το Source Party πού δείχνει τον αποστολέα του μηνύματος. Ακολουθεί το Context, το οποίο καθορίζει το πλήθος των MIB αντικειμένων που μπορούν να έχουν πρόσβαση σε μια συσκευή. Αμέσως επόμενο είναι το PDU, το οποίο θα αναλυθεί παρακάτω γιατί είναι κοινό για όλες τις εκδόσεις. Να σημειωθεί ότι όλα τα πεδία είναι μεταβλητού μεγέθους εκτός από τον αριθμό έκδοσης. 3.3 SNMPv2c Το SNMPv2c περιλαμβάνει τρία πεδία. Το πρώτο πεδίο είναι ο αριθμός έκδοσης (version) το οποίο είναι μεγέθους 32bit και χρησιμοποιείται για να διασφαλιστεί η συμβατότητα μεταξύ των εκδόσεων. Η μόνη διαφορά είναι ότι στην έκδοση SNMPv2c η τιμή είναι 1. Το επόμενο πεδίο είναι το Community String το οποίο αναγνωρίζει σε ποια περιοχή (community) βρίσκονται ο αποστολέας και ο παραλήπτης του μηνύματος. Και το τελευταίο πεδίο είναι το PDU το οποίο θεωρείται ως το σώμα του μηνύματος. Οπως και στην προηγούμενη έκδοση μόνο ο αριθμός έκδοσης είναι σταθερού μήκους ενώ τα υπόλοιπα πεδία είναι μεταβλητού μήκους. 21

22 3.4 SNMPv2u Το SNMPv2u μήνυμα περιέχει τρία βασικά πεδία. Το πρώτο πεδίο είναι ο αριθμός έκδοσης (version) που είναι μεγέθους 32bit και χρησιμοποιείται για να διασφαλιστεί η συμβατότητα μεταξύ των εκδόσεων. Για το SNMPv2c η τιμή είναι 2 η οποία όπως παρατηρούμε είναι ίδια με την έκδοση SNMPv2p. Το δεύτερο πεδίο είναι οι παράμετροι οι οποίοι χρησιμοποιούνται για την υλοποίηση του user based μοντέλου επικοινωνίας. Οι παράμετροι που χρησιμοποιούνται είναι οι εξής: 1. Model με μέγεθος 1byte. Οταν βρίσκεται στην τιμή ένα υποδεικνύει ότι χρησιμοποιείται το user based μοντέλο. 2. Qos (quality of service) με μέγεθος 1byte. Υποδεικνύει αν χρησιμοποιείται πιστοποίηση και κωδικοποίηση και αν επιτρέπεται η δημιουργία απάντησης στο συγκεκριμένο αίτημα. 3. AgentID με μέγεθος 12bytes. Χρησιμοποιείται για την αναγνώριση του agent που στέλνει το μήνυμα. Είναι χρήσιμο για την αντιμετώπιση συγκεκριμένων επιθέσεων ασφαλείας. 4. Agent Boots με μέγεθος 4bytes. Είναι ο αριθμός που φορτώθηκε ή ξαναφορτώθηκε ο agent από τη στιγμή που τέθηκε το agent id του και χρησιμοποιείται για την αντιμετώπιση επιθέσεων ασφαλείας. 5. Agent Time με μέγεθος 4bytes. Είναι ο αριθμός των δευτερολέπτων από την τελευταία εκκίνηση του agent. Χρησιμοποιείται επίσης, για την αντιμετώπιση προβλημάτων ασφαλείας. 6. Max Size με μέγεθος 2bytes. Είναι το μέγεθος του μηνύματος που ο αποστολέας μπορεί να δεχτεί. 7. User Length με μέγεθος 1byte. Είναι το μήκος του ονόματος χρήστη (user name). 22

23 8. User Name με μέγεθος από 1 εώς 16 bytes. Είναι το όνομα του χρήστη από τον οποίο αποστέλλεται το μήνυμα. 9. Authentication Length με μέγεθος 1 byte. Μας δείχνει το μήκος του πεδίου authentication digest. 10. Authentication Digest με μήκος από 0 εώς 255 bytes. Είναι ένας αριθμός πιστοποίησης για την εξακρίβωση της ταυτότητας και της γνησιότητας του μηνύματος. Εχει τη τιμή μηδέν όταν δε χρησιμοποιείται αυθεντικοποίηση (πιστοποίηση). 11. Context Selector με μέγεθος 0 έως 40 bytes. Είναι ένα string το οποίο συνδυάζεται με το agent id για να καθορίσει ένα συγκεκριμένο κομμάτι που περιέχει τις πληροφορίες διαχείρισης που περιέχονται σε αυτό το μήνυμα. Και μετά ακολουθεί το PDU του SNMPv2u το οποίο μπορεί να είναι είτε κρυπτογραφημένο είτε όχι. 23

24 Στη συνέχεια θα περιγράψουμε τη μορφή του SNMPv2 PDU. Οπως ήδη α- ναφέραμε, το PDU είναι το ίδιο για όλες τις εκδόσεις του SNMP εκτός από το GetBulkRequest μήνυμα. PDU Type έχει μέγεθος 4byte και περιγράφει τον τύπο του PDU. Οι τιμές που μπορεί να πάρει είναι οι εξής: PDU TYPE VALUE PDU TYPE 0 GetRequest 1 GetNextRequest 2 Response 3 SetRequest 4 den qrhsimopoieðtai plèon ( tan to trap PDU sthn èkdosh 1) 5 GetBulkRequest 6 InformRequest 7 Trapv2 8 Report Το επόμενο πεδίο είναι το Request Id, το οποίο έχει μέγεθος 4bytes και είναι ένας αριθμός που χρησιμοποιείται για την αντιστοίχιση των αιτημάτων με τις απαντήσεις. Η συσκευή που στέλνει το αίτημα θέτει το Request Id και η συσκευή που στέλνει την απάντηση το αντιγράφει σε αυτό το πεδίο. Στη συνέχεια, υπάρχει το Error Status, το οποίο είναι ένας ακέραιος αριθμός που στέλνεται από τη συσκευή που απαντάει για να μας δηλώσει το αποτέλεσμα του αιτήματος. Αν έχει τιμή μηδέν δηλώνει ότι δε συνέβη κανένα σφάλμα. Οι πρώτες έξι τιμές είναι ίδιες με την έκδοση 1 ενώ έχουν προστεθεί πολλές καινούριες τιμές. Ολες οι τιμές των σφαλμάτων δίνονται στον παρακάτω πίνακα. 24

25 Error Status Value Error Code Description 0 noerror No error occurred. This code is also used in all request PDUs, since they have no error status to report. 1 toobig The size of the Response-PDU would be too large to transport 2 nosuchname The name of a requested object was not found. 3 badvalue A value in the request didn t match the structure that the recipient of the request had for the object. For example, an object in the request was specified with an incorrect length or type. 4 readonly An attempt was made to set a variable that has an Access value indicating that it is read-only. 5 generr An error occurred other than one indicated by a more specific error code in this table. 6 noaccess Access was denied to the object for security reasons. 7 wrongtype The object type in a variable binding is incorrect for the object 8 wronglength A variable binding specifies a length incorrect for the object. 9 wrongencoding A variable binding specifies an encoding incorrect for the object. 10 wrongvalue The value given in a variable binding is not possible for the object. 11 nocreation A specified variable does not exist and cannot be created. 12 inconsistentvalue A variable binding specifies a value that could be held by the variable but cannot be assigned to it at this time. 13 resourceunavailablean attempt to set a variable required a resource that is not available. 14 commitfailed An attempt to set a particular variable failed. 15 undofailed An attempt to set a particular variable as part of a group of variables failed, and the attempt to then undo the setting of other variables was not successful. 16 authorizationerror A problem occurred in authorization. 17 notwritable The variable cannot be written or created. 18 inconsistentname The name in a variable binding specifies a variable that does not exist. Το επόμενο πεδίο είναι το Error Index το οποίο έχει μέγεθος 4 bytes. Οταν 25

26 αυτό το πεδίο δεν είναι μηδέν περιέχει το δείκτη στο αντικείμενο που δημιούργησε το σφάλμα. Επειτα, έχουμε το Variable Bindings, το οποίο είναι μεταβλητού μεγέθους. Είναι ζευγάρια ονόματος τιμών τα οποία αναγνωρίζουν τα MIB αντικείμενα στο PDU. Αν είναι απάντηση και όχι αίτημα το πεδίο αυτό περιέχει τις τιμές των MIB Οobjects. Η εικόνα του μηνύματος φαίνεται παρακάτω: Οσον αφορά το GetBulkRequest στο οποίο δεν είχαμε αναφερθεί προηγουμένως, χρησιμοποιείται για την ανάκτηση μεγάλου όγκου πληροφοριών και κυρίως για μεγάλους πίνακες. Συγκεκριμένα, εκτελεί μια συνεχόμενη GetNext λειτουργία με βάση την τιμή του πεδίου max repetitions. 3.5 SNMPv3 Οπως ήδη αναφέραμε, η έκδοση SNMPv2c είναι η πιο διαδεδομένη. Γνωρίζουμε ότι η SNMPv2 εκδόθηκε για να καλύψει τα κενά στον τομέα της ασφάλειας. Παρά τις βελτιώσεις που έγιναν σε σχέση με την πρώτη έκδοση, και πάλι υπήρχαν προβλήματα στο συγκεκριμένο τομέα. Γι αυτό το 2004 εκδόθηκε το SNMPv3. Η SNMPv3 παρέχει τρία σημαντικά στοιχεία όσον αφορά την ασφάλεια. Ακεραιότητα μηνύματος (message integrity). Πιστοποιεί ότι το μήνυμα δε θα αλλοιωθεί κατά τη διάρκεια της όλης διαδικασίας. Αυθεντικοποιήση. Παρέχει την πιστοποίηση ότι το μήνυμα προέρχεται από έγκυρη πηγή. Κρυπτογράφηση. Κρυπτογραφεί τα μηνύματα έτσι ώστε να μην μπορούν να διαβαστούν από τρίτους ΜΟΡΦΗ SNMPv3 Η βασική μορφή είναι όμοια με τις προηγούμενες εκδόσεις δηλαδή έχουμε μια κεφαλίδα και ένα ενθυλακωμένο PDU. Τα πεδία περιγράφονται παρακάτω. 26

27 Field Name Msg Version Msg ID Msg Max Size Msg Flags Msg Security Model Msg Security Parameters Scoped PDU Description Message Version èqei mègejoc 4byte eðnai o arijmìc èkdoshc tou SNMP kai gia thn èkdosh trða eðnai to noômero trða. Message Identifier èqei mègejoc 4byte kai èqei sqedìn thn Ðdia qr sh ìpwc tic prohgoômenec ekdìseic allˆ den eðnai ìmoiec. To pedðo autì dhmiourg jhke gia na epitrèyei thn antistoðqhsh sto stˆdio epexergasðac tou mhnômatoc xeqwristˆ apì ta perieqìmena tou PDU gia thn prostasða enˆntia se epijèseic asfaleðac. MSG max size èqei mègejoc 4 byte kai eðnai to mègisto mègejoc mhnômatoc pou mporeð na paralˆbei o apostolèac. H elˆqisth tim pou mporeð na pˆrei eðnai 484 bit. MSG flags èqei mègejoc 1 byte kai eðnai èna pl joc shmai n(flags) gia ton èlegqo thc epexergasðac tou mhnômatoc. H dom tou byte autoô eðnai h ex c: Subfield name Size Description Reserved 5 bit EÐnai desmeumèno gia mellontik qr sh. Reportable Flag 1 bit 'Otan èqei tim 1, h suskeu pou lambˆnei autì to m numa prèpei na steðlei pðsw èna report PDU kˆtw apì opoiesd pote sunj kec. Privacy Flag 1 bit 'Otan èqei tim 1, upodhl nei ìti to m numa eðnai kruptografhmèno. To bit autì eðnai energì mìno ìtan kai to authentication flag èqei tim 1. Authentication Flag 1 bit 'Otan èqei tim 1, dhl nei ìti qrhsimopoi jhke aujentikopoi sh gia thn prostasða tou mhnômatoc. MSG Security Model to opoðo èqei mègejoc 4byte. Dhl nei poio montèlo asfaleðac qrhsimopoieðtai gia to m numa. MSG Security Parameters èqei metablhtì mègejoc kai perièqei paramètrouc pou qrhsimopoioôntai gia thn ulopoðhsh tou montèlou asfaleðac pou qrhsimopoieðtai sto m numa. Scoped PDU èqei kai autì metablhtì mègejoc kai perièqei to PDU pou prìkeitai na apostaleð mazð me kˆpoiec paramètrouc pou anagnwrðzoun èna SNMP perieqìmeno to opoðo perigrˆfei èna pl joc diaqeirðsimwn plhrofori n, prosbˆsimwn apì mia sugkekrimènh ontìthta (eðnai jèmata asfˆleiac kai de ja dojeð megalôterh èktash sto z thma). 27

28 28

29 4 DiadikasÐa ulopoðhshc ptuqiak c Αφού έγινε η εγκατάσταση όλων των απαραίτητων προγραμμάτων, ξεκινήσαμε να πειραματιζόμαστε με τις εντολές του SNMP σε περιβάλλον Linux. Πειραματιστήκαμε με διάφορους τρόπους ώστε να εξοικειωθούμε με τις εντολές και τις λειτουργίες του SNMP. Αρχικά, έγινε προσπάθεια να πάρουμε πληροφορίες για το ADSL Router του σπιτιού μας. Ηταν επιτυχής η απόκτηση πληροφορίων που αφορούν τα interface του, καθώς και γενικών πληροφοριών για το ίδιο το Router. Σε δεύτερη φάση, δημιουργήθηκε ένα τοπικό δίκτυο τριών υπολογιστών και ενός ADSL Router, ώστε να μπορούμε να αποκτήσουμε πληροφορίες από ολόκληρο το δίκτυο ή ξεχωριστά από κάθε υπολογιστή. Καταφέραμε και εγκαταστήσαμε το NET-SNMP για περιβάλλον MS Windows με αποτέλεσμα να είναι δυνατή η ανταλλαγή των πληροφοριών που χρειαζόμασταν. Ως αποτέλεσμα αυτού, συλλέξαμε πληροφορίες από περιβάλλον Linux, MS Windows XP και MS Windows Vista. Μετά από τους διάφορους πειραματισμούς, ξεκινήσαμε με τη γρήγορη εκμάθηση της PHP και τη δημιουργία απλών δυναμικών ιστοσελίδων, με αρχικό σκοπό την εξοικείωση με αυτήν τη γλώσσα. Μετά την εξοικείωση με την PHP, ξεκινήσαμε την ανάπτυξη του κώδικά μας με τη χρήση της PHP και χρησιμοποιήσαμε το πακέτο NET SNMP για την εφαρμογή του SNMP. Η ιστοσελίδα στην αρχή ήταν πολύ απλή και χωρίς πολλές λειτουργίες. Τελικά, καταφέραμε να παίρνουμε πληροφορίες από τα τοπικά μας συστήματα. Οι πληροφορίες αυτές αφορούσαν το σύστημα και όχι το δίκτυο. Η πρώτη μας δυσκολία ήταν η χρήση της IP το οποίο αναλύεται παρακάτω. IP Αρχικά, χρησιμοποιήσαμε τέσσερις διαφορετικές μεταβλητές ώστε να αποθηκεύουμε την κάθε οκτάδα και να τη συγκρίνουμε ξεχωριστά. Ετσι, καταλήξαμε στο συμπέρασμα ότι έπρεπε να βρεθεί ένας τρόπος που να μας επιτρέπει την αποθήκευση. Ομως, αυτό χρειαζόταν τη χρήση μιας βάσης δεδομένων, πράγμα που δεν ήταν καθόλου χρήσιμο για την εφαρμογή μας, γιατί δε θα χρειαζόταν αυτή η βάση δεδομένων κάπου αλλού. Οπως είναι λογικό η δημιουργία μιας βάσης δεδομένων για την αποθήκευση μόνο μιας πληροφορίας σημαίνει αυτομάτως ότι δεν ήταν η καλύτερη λύση για το πρόβλημα μας. Οπότε και δεν προχωρήσαμε στη χρησιμοποίηση αυτής και οδηγηθήκαμε σε διαφορετική. Λόγω του ότι θέλαμε να χρησιμοποιούμε μία IP, και με αυτή να παίρνουμε πληροφορίες πολλές φορές και για διαφορετικά πράγματα, δε μπορούσαμε να βρούμε έναν τρόπο ώστε να «αποθηκεύουμε» την IP για την επαναχρησιμοποίησή της. Η λύση αυτή δόθηκε με τη χρήση της IP στο browser, με τη χρήση της εντολής GET της PHP. $ip = $_GET ["ip"]; $community = $_GET ["cn"]; $ch = $_GET ["ch"]; list ($ip1, $ip2, $ip3, $ip4 ) = explode (".",$ip ); Και τη χρήση της φόρμας HTML: 29

30 <form action =" index. php " method =" GET "> <table align = center width =" 30% " border ="0"> <tr > <td > Enter the IP address : </td > <td > <input type =" text " name ="ip" size ="15" maxlength ="15" value =""> </td > </tr > <input type =" submit " name =" submit " value =" Submit "> Ετσι, όταν δίναμε την IP στη φόρμα και πατούσαμε το κουμπί Submit, αυτομάτως το URL της σελίδας μας είχε την παρακάτω μορφή (Στο συγκεκριμένο παράδειγμα έχουμε δώσει την IP ). dsiaper/myapp/index.php?ip= Βέβαια στη συνέχεια, προστέθηκαν και άλλες μεταβλητές με ένα τελικό αποτέλεσμα να εμφανίζεται ως εξής: dsiaper/myapp/index.php?ip= &cn=public&ch=1 Με τον τρόπο αυτό, καταφέραμε να χρησιμοποιούμε την IP του εκάστοτε συστήματος όποτε τη χρειαζόμασταν και επιπλέον, να πραγματοποιούμε ελέγχους εγκυρότητας στην IP. Οπως ήταν αναμενόμενο, αμέσως μετά από αυτό και με τον ίδιο τρόπο, έγινε διαθέσιμο και το community name στον browser. Αφού έγινε δυνατή η λήψη της IP και του community name, ξεκινήσαμε τον έλεγχο της εγκυρότητας. Για τον έλεγχο της IP χρησιμοποιήθηκε η κλάση Net CheckIP() που πήραμε από το site CheckIP2/docs/latest/ Net CheckIP2/ Net CheckIP RC2 examples check-ip.php.html. Στη συνέχεια, έγιναν οι απαραίτητες ρυθμίσεις ώστε να μπορεί να χρησιμοποιηθεί στην ιστοσελίδα μας ο συγκεκριμένος έλεγχος. Η διαδικασία που χρησιμοποιεί η κλάση αυτή δίνεται παρακάτω: function check_ ip ( $ip ) { $oct = explode (., $ip ); if ( count ( $oct )!= 4) { return false ; for ( $i = 0; $i < 4; $i ++) { if (! preg_match (" /^[0-9]+ $/", $oct [$i ])) { return false ; if ( $oct [$i] < 0 $oct [$i] > 255) { return false ; 30

31 return true ; Η συνάρτηση αυτή παίρνει ως όρισμα την IP που θέλουμε να ελέγξουμε και τη χωρίζει σε 4 κομμάτια, που όπως είναι γνωστό είναι τα byte τις IP. Αν τα μέρη στα οποία χωρίσαμε την IP είναι 4, τότε προχωράμε στους επόμενους δύο ελέγχους εγκυρότητας της IP. Για κάθε κομμάτι (Byte) ελέγχει αν είναι αριθμός, και τέλος, ένας τρίτος έλεγχος δείχνει αν βρίσκεται μεταξύ των ορίων που καθορίζει η μορφή της IP (0-255). Η κλήση της συνάρτησης αυτής γίνεται από την αρχική σελίδα index.php μέσω της εντολής: i f ( Net CheckIP : : c h e c k i p ( $host ) && DevExist ( $host, $community ) ) Μέσα στον έλεγχο της εντολής if, στην οποία βρίσκεται η κλήση της συνάρτησης γίνεται και η κλήση της συνάρτησης DevExists() η οποία ελέγχει αν η IP που δώσαμε ανταποκρίνεται σε κάποια συσκευή. Αυτό γίνεται με ένα snmpget ερώτημα, το οποίο στέλνουμε με μειωμένο χρόνο απόκρισης ώστε να μην υπάρχει μεγάλη καθυστέρηση. Στο ερώτημα αυτό ζητείται να επιστραφεί το όνομα της συσκευής, στοιχείο που είναι πάντα διαθέσιμο από όλες τις συσκευές που έχουν SNMP agent. Με τον τρόπο που περιγράψαμε παραπάνω, εξασφαλίζεται η εγκυρότητα της IP, καθώς και η ύπαρξη της συσκευής που αντιστοιχεί η IP που δώσαμε. Σε περίπτωση λανθασμένης IP ή ανύπαρκτης συσκευής, έχει προστεθεί ένα παράθυρο, όπου εμφανίζει μήνυμα λάθους. Οσον αφορά το community name, δε γίνεται κάποιος έλεγχος, παρά μόνο το αν υπάρχει ή όχι. Το community name, όπως περιγράφηκε σε προηγούμενο κεφάλαιο, είναι ένας «κωδικός», οπότε και μπορεί να είναι οποιοσδήποτε, χωρίς περιορισμούς και έτσι δεν πραγματοποιείται κάποιος έλεγχος εγκυρότητας γι αυτό. Εξ ορισμού σε πολλές περιπτώσεις το community name είναι το public. 4.1 H ro tou progrˆmmatoc Η αρχική έκδοση της ιστοσελίδας περιελάμβανε ένα αρχείο PHP από το οποίο πραγματοποιούνταν όλες οι βασικές λειτουργίες. Ετσι, η ροή ξεκινούσε από την αρχή και σειριακά προχωρούσε προς το τέλος. Αυτό όμως δεν ήταν λειτουργικό διότι, δε μπορούσαμε αφενός να αλλάξουμε τη ροή και αφετέρου να διαχειριστούμε τον όγκο των πληροφοριών. Αυτό γιατί όταν ανοίγαμε την ιστοσελίδα και δίναμε μια IP και ένα community name, αυτομάτως παίρναμε όλες τις πληροφορίες, απαραίτητες ή όχι. Οπως είναι αναμενόμενο, ένα τέτοιο πρόβλημα ήταν αρκετά βασικό για τη λειτουργία της ιστοσελίδας μας και έπρεπε να λυθεί άμεσα. Στη συνέχεια, το πρόβλημα που ανέκυψε ήταν ότι έπρεπε να διαχειριστούμε όλον αυτόν τον όγκο πληροφοριών και να τον οργανώσουμε με τρόπο κατανοητό έτσι ώστε να γίνεται εύκολος στην ανάγνωση. Αυτό είχε τεράστιο κόστος, τόσο λειτουργικό όσο και χρονικό. Η λύση ήταν η οργάνωση της σελίδας σε μία κύρια, αρχική σελίδα (index.php) από την οποία θα αλλάζει η ροή του προγράμματος κάθε φορά που θα εκτελούμε μία νέα λειτουργία. Ετσι, μας δίνεται η δυνατότητα να επιλέξουμε τα δεδομένα 31

32 που θέλουμε να πάρουμε από κάποια συσκευή του δικτύου χωρίς απαραίτητα να χρησιμοποιήσουμε όλα τα διαθέσιμα δεδομένα. Ετσι, η αρχική μας σελίδα οργανώθηκε σε κατηγορίες, σύμφωνα με τις οποίες μπορούμε να πάρουμε συγκεκριμένες πληροφορίες, ανάλογα με την επιλογή μας, για το ίδιο το σύστημα και τη δικτυακή του λειτουργία. Στην περίπτωση τώρα που έχουμε μια Cisco συσκευή μπορούμε να εκτελέσουμε κάποιες πρόσθετες λειτουργίες τις οποίες όμως, θα αναλύσουμε σε επόμενη ενότητα. Ο τρόπος επιλογής γίνεται με τη χρήση ενός μενού του οποίου η λειτουργία θα αναλυθεί στη συνέχεια. Ο τρόπος που αλλάζει η ροή μας κατ επιλογή πραγματοποιείται με τη χρήση μιας switch/case και με τη χρήση μεταβλητών ώστε κάθε φορά να ανοίγει η συγκεκριμένη ιστοσελίδα που θέλουμε. switch ( $ch ){ case 1 : include_once files / SNMP / systable. php ; $show = showtable (); $smarty -> assign ( show, $show ); break ; case 15 : include_once files / SNMP / cisco. php ; $show = showtable (); $smarty -> assign ( show, $show ); break ; case 16 : include files / SNMP / cisconetwork. php ; $show = showtable (); $smarty -> assign ( show, $show ); break ; default : $show = ; break ; Οπως βλέπουμε στον κώδικα, επιλέγοντας από το μενού την απαραίτητη κατηγορία πληροφοριών που θέλουμε να δούμε ( routing table, arp table), αυτομάτως θέτουμε την τιμή της μεταβλητής που χρησιμοποιούμε για την switch, τη μεταβλητή «ch» στην κατάλληλη τιμή. Για παράδειγμα, αν διαλέξουμε από το μενού την επιλογή Cisco, αυτομάτως η μεταβλητή ch (μεταβλητή της επιλογής) παίρνει την τιμή 15 οπότε ενεργοποιείται η δέκατη πέμπτη περίπτωση του switch στο Index.php, το οποίο έχει σαν αποτέλεσμα την εκτέλεση του αρχείου «Cisco.php» και την εμφάνιση των επιθυμητών αποτελεσμάτων. Η διαδικασία που ακολουθείται για τη λήψη της μεταβλητής ch, έχει να κάνει με τη διαρρύθμιση του μενού μας και θα εξηγηθεί στο κεφάλαιο του μενού. (1) include_once files / SNMP / ARPTable. php ; (2) $show = showtable (); (3) $smarty -> assign ( show, $show ); 32

33 Στον παραπάνω κώδικα, βλέπουμε μία από τις περιπτώσεις του switch. Στην γραμμή (1) γίνεται η συμπερίληψη του κώδικα του αρχείου «systable.php» στο index.php. Στη συνέχεια, στη γραμμή (2), δημιουργούμε μία μεταβλητή με το όνομα show η οποία περιέχει το αποτέλεσμα της συνάρτησης showtable(). Η showtable() είναι μία συνάρτηση η οποία σαν σκοπό έχει την εμφάνιση των δεδομένων που θέλουμε. Αυτό γίνεται ως εξής: Κάθε αρχείο PHP που μας δίνει τις πληροφορίες του SNMP, είναι στην ουσία η συνάρτηση showtable(). Ετσι, καλώντας την από το index.php ξεκινάει η λήψη των δεδομένων καθώς και η επεξεργασία και εμφάνισή τους. Αμέσως μετά τη λήψη των δεδομένων, τα προωθούμε στο Smarty ώστε να τα λάβει το ARPTable.tpl. Τέλος, καλούμε το αρχείο ARP.tpl, το οποίο είναι υπεύθυνο για την εμφάνιση των δεδομένων, και το επιστρέφουμε ολόκληρο στο index.php. Στην γραμμή (3) παίρνουμε το περιεχόμενο της μεταβλητής show, το οποίο αφορά τα αποτελέσματα της showtable() και το αποθηκεύουμε στην Smarty μεταβλητή show μέσω του assign. Τονίζεται ότι το show και το $show είναι διαφορετικά πράγματα, με το πρώτο να είναι μεταβλητή του Smarty και το δεύτερο μεταβλητή της PHP. Με τον τρόπο αυτόν έχουμε στο index.php τα δεδομένα μας έτοιμα προς εμφάνιση. Το τελευταίο βήμα είναι το πού θα το εμφανίσουμε. Η εμφάνιση γίνεται στο τέλος του αρχείου μας, με τη χρήση της εντολής : $smarty -> display ( index. tpl ); Ετσι στην ουσία, εμφανίζουμε ολόκληρη την σελίδα, μαζί με τα δεδομένα που θέλουμε όπως τα καθορίσαμε μέσα στο index.tpl Αποτελέσματα Με τη χρήση πολλών αρχείων για τη λήψη δεδομένων που αλλάζει τη ροή του προγράμματος, λύθηκαν κάποια σημαντικά προβλήματα. Οπως ήδη αναφέρθηκε, είναι κατανοητή η ροή του προγράμματος χωρίς να υπάρχει σύγχυση μεταξύ των αρχείων μας. Το σημαντικότερο πρόβλημα που αντιμετωπίζεται έτσι είναι ότι στην περίπτωση κάποιου σφάλματος σε κάποιο από τα αρχεία, δε σταματάει η λειτουργία του προγράμματος, εμφανίζοντας σφάλμα στη σελίδα, αλλά μόνο το συγκεκριμένο κομμάτι που έχει πρόβλημα δε λειτουργεί, δίνοντάς μας έτσι τη δυνατότητα να «ξανατρέξουμε» την ιστοσελίδα από την αρχή μη μπορώντας απλώς να χρησιμοποιήσουμε τη συγκεκριμένη λειτουργία. Αυτό βοηθάει ακόμη και στον εντοπισμό του προβλήματος γρήγορα, ώστε να διορθωθεί άμεσα. Ενα άλλο πρόβλημα που λύνεται με τον τρόπο αυτόν είναι η ταχύτητα της λήψης των δεδομένων, αφού έτσι παίρνουμε συγκεκριμένες πληροφορίες κάθε φορά και όχι όλες τις πληροφορίες ταυτόχρονα, πράγμα που θα έκανε την ιστοσελίδα να είναι πιο «αργή» και να χρειάζεται μεγαλύτερη επεξεργασία των δεδομένων. Επίσης, λύνεται και το πρόβλημα των πολλαπλών παραθύρων, όπου αρχικά χρειαζόταν κάθε φορά που επιλέγαμε μία κατηγορία, αυτή να ανοίγει ένα νέο παράθυρο και να εμφανίζει στο browser το όνομα του αρχείου που χρησιμοποιούμε κάθε φορά για κάθε νέα κατηγορία.. Το να εμφανίζεται μόνο το αρχείο index.php στο browser εκτός από την ευχρηστία του να εμφανίζονται όλα σε ένα παράθυρο, προσθέτει και ασφάλεια, καθώς δε γνωρίζει ο χρήστης τα αρχεία που χρησιμοποιεί η ιστοσελίδα. 33

34 4.2 To menoô sthn istoselðda Οπως ήδη έχουμε αναφέρει, ο βασικός σκοπός της ιστοσελίδας μας είναι να μπορεί ο διαχειριστής ή ο χρήστης να παίρνει πληροφορίες για τις συσκευές του δικτύου. Για τον παραπάνω λόγο αποφασίσαμε να χρησιμοποιήσουμε ένα μενού σε PHP και όχι σε κάποια άλλη γλώσσα προγραμματισμού, όπως για παράδειγμα την java script, διότι μας ενδιαφέρει η λειτουργικότητά του. Είναι προφανές ότι, το μενού δεν έχει δημιουργηθεί από την αρχή, αλλά χρησιμοποιήσαμε σα βάση ένα παράδειγμα ενός δενδροειδούς μενού από τη σελίδα με αρκετές διαφοροποιήσεις γιατί, όπως είναι λογικό, δε μπορούμε απλώς να χρησιμοποιήσουμε ένα μενού που να έχει τις λειτουργίες που εμείς χρειαζόμαστε, αλλά πρέπει να γίνουν αρκετές, και ταυτόχρονα σημαντικές αλλαγές. Το μενού αυτό χρησιμοποιεί ένα αρχείο txt για την εμφάνιση των επιλογών του. Αυτό μας δημιουργούσε πρόβλημα διότι έπρεπε να χρησιμοποιήσουμε μεταβλητές για τις επιλογές μας, όπως επίσης και για την πραγματοποίηση ελέγχων. Ετσι, έπρεπε να ενσωματώσουμε το txt αρχείο στην PHP ώστε να μπορούμε να το χρησιμοποιήσουμε όπως εμείς θέλουμε. Η λύση που βρέθηκε, ήταν η τοποθέτηση του txt αρχείου του μενού, σε μία string μεταβλητή, μέσα στο αρχείο menu.php της ιστοσελίδας μας, ώστε να γίνεται δυνατή η χρήση php κώδικα σε αυτό. Το αρχείο menu.php της ιστοσελίδας μας, είναι αυτό που δημιουργεί το μενού. Αρχικά απλώς δημιουργεί ένα αντικείμενο το οποίο είναι το μενού μας, και στη συνέχεια γίνεται ο έλεγχος διαθεσιμότητας της συσκευής. Αυτό γίνεται με την παρακάτω συνάρτηση find(). $usermenu = find ( $host, $community ); function find ( $host, $community ){ if ( $host!= null && $community!= null ) $donow = existence ( $host, $community ); if ( $donow == 0 ) $usermenu =""; elseif ( $donow == 1 ){ $usermenu = ". Host Resources index. php?ip= $host &cn= $community The Host Resources menu 1\ n". ".. Host Resources System index. php?ip= $host &cn= $community &ch =11 Show the HR System info \n". ".. Host Resources Device index. php?ip= $host &cn= $community &ch =12 Show the HR Device info \n". ".. Host Resources Storage index. php?ip= $host &cn= $community &ch =13 Show the HR Storage info \n". ".. Running Software index. php?ip= $host &cn= $community &ch =14 Show the Running Software \n"; 34

35 elseif ( $donow == 2 ) $usermenu = ". Cisco index. php?ip= $host & amp ;cn= $community The Cisco menu \n". ".. Cisco index. php?ip= $host & amp ;cn= $community & amp ;ch =15 CDP of the device 1\ n". ".. CDP Network index. php?ip= $host & amp ;cn= $community & amp ;ch =16 The whole Network 1\ n"; elseif ( $donow == 3 ){ $usermenu =""; return $usermenu ; Η συνάρτηση find() ελέγχει αν έχει δοθεί IP και community name. Σε περίπτωση που αυτά υπάρχουν, μας οδηγεί στη συνάρτηση existence() η οποία χρησιμοποιεί με τη σειρά της την IP και το community name που τα παίρνει από τη συνάρτηση find() ώστε να βρει αν η συγκεκριμένη συσκευή είναι local υπολογιστής ή CISCO συσκευή. function existance ( $host, $community ){ $old = ini_get ( error_reporting ); # <-- the old error reporting for restoration ini_set ( error_reporting,$old & (~ E_WARNING )); # <-- turns off the warnings $sysname = snmpget ( $host, $community, " ", , 1 ); $hrsystemuptime = snmpget ( $host, $community, " ", , 1 ); $cdpcacheversion = snmpwalk ( $host, $community, " ", , 1 ); if ( $sysname!= null && $hrsystemuptime!= null ) return 1; elseif ( $sysname!= null && $cdpcacheversion!= null ) return 2; ini_set ( error_reporting,$old ); # <-- restores the warnings return 0; Αυτό γίνεται με τον εξής τρόπο. Πρώτα απενεργοποιούμε την εμφάνιση των προειδοποιήσεων από την PHP (WARNINGS) με την εντολή: ini_set ( error_reporting,$old & (~ E_WARNING ) Με το ini set() μπορούμε να αλλάξουμε τις τιμές της PHP. Ετσι, μπορούμε να αλλάξουμε την εμφάνιση των λαθών στην PHP. Με την παραπάνω εντολή απενεργοποιούμε την εμφάνιση των προειδοποιήσεων έτσι ώστε να κάνουμε τον έλεγχο που επιθυμούμε. Το επόμενο βήμα μας είναι να κάνουμε τρία SNMP requests προκειμένου να δούμε ποιά συσκευή δικτύου αντιστοιχεί στην IP που δώσαμε. 35

36 $sysname = snmpget ( $host, $community, " ", ,1); $hrsystemuptime = snmpget ( $host, $community, " ", ,1); $cdpcacheversion = snmpwalk ( $host, $community, " ", , 1); Με το πρώτο request, ζητείται απο το SNMP να μας επιστρέψει το όνομα του συστήματος. Με το δεύτερο, παίρνουμε την τοπική ώρα του συστήματος και με το τρίτο, λαμβάνουμε τις πληροφορίες του πρωτοκόλλου CDP από τη συσκευή. Αν επιστραφεί τιμή στο πρώτο request, καταλαβαίνουμε ότι πρώτον, υπάρχει η συγκεκριμένη συσκευή και δεύτερον, ότι χρησιμοποιεί το πρωτόκολλο SNMP. Για τα άλλα δύο request, περιμένουμε να μας επιστραφεί μόνο η μία από τις δύο τιμές. Αν επιστραφεί τιμή από το πρώτο, σημαίνει ότι είναι τοπικός υπολογιστής, οπότε και αλλάζει η εμφάνιση του μενού. Αν επιστραφεί από την δεύτερη, σημαίνει ότι έχουμε μια CISCO συσκευή. Αξίζει να σημειωθεί ότι και στην περίπτωση αυτή αλλάζει η εμφάνιση του μενού κατάλληλα. Σε περίπτωση που δεν επιστραφεί τίποτα, τότε η συσκευή δεν υποστηρίζει SNMP ή δεν είναι ενεργή. Το μενού τότε είναι και πάλι διαφορετικό. Η συνάρτηση αυτή, επιστρέφει τρεις διαφορετικές τιμές, μία για κάθε περίπτωση. Αν έχουμε τοπικό σύστημα, το μενού παίρνει τη μορφή που χρειάζεται για να πάρουμε πληροφορίες για το σύστημα. Αυτό γίνεται από τη συνάρτηση find() χρησιμοποιώντας μόνο την εντολή ελέγχου. Αφού επιλεγεί η μορφή του μενού, το αποτέλεσμα αποθηκεύεται στη μεταβλητή usermenu και επιστρέφεται. Στη συνέχεια, το πρόγραμμα συνεχίζει τη ροή του από την επόμενη εντολή. $struct = ( ". Enter New IP index. php Enter new IP for info \n". ". System index. php?ip= $host & amp ;cn= $community \n". ".. Generalinformation index. php?ip= $host & amp ; cn= $community & amp ;ch =1 opening the system general information 8\ n"); Με αυτόν τον τρόπο, μπορούμε σε μία μεταβλητή να έχουμε ολόκληρο το μενού μας και αν προσθέσουμε την μεταβλητή που περιέχει το τροποποιημένο μενού, να έχουμε το τελικό μενού που θα εμφανίσουμε στην ιστοσελίδα μας. $struct = ( ". Enter New IP index. php Enter new IP for info \n". ". System index. php?ip= $host & amp ;cn= $community \n". 36

37 ".. General information index. php? ip= $host & amp ;cn= $community & amp ;ch =1 opening the system genberal information 8\ n". "... SNMP index. php?ip= $host & amp ;cn= $community & amp ; ch =10 opening the Interface Information 1\ n". $usermenu ); ".. ARP Table index. php?ip= $host & amp ; cn= $community & amp ;ch =2 Show the ARP Table 1\ n". Παραπάνω βλέπουμε την εντολή που δημιουργεί τις επιλογές του μενού. Οι τελείες στην αρχή, καθορίζουν το αν θα είναι κύριο μενού ή υπό-μενού. Ο,τι γράψουμε μετά την πρώτη κάθετο, είναι και η ετικέτα που θα εμφανίσει στο μενού. Από τη δεύτερη κάθετο και μετά, βάζουμε τον προορισμό που επιθυμούμε. Αυτός είναι και ο λόγος που διαφοροποιήσαμε το μενού και τοποθετήσαμε το αρχείο txt μέσα στην PHP. Με τον τρόπο αυτό έχουμε τον προορισμό ακολουθούμενο από την IP και το community name όπως επίσης και τη μεταβλητή ch με την τιμή της. Η μεταβλητή ch είναι αυτή που καθορίζει στο index.php την επιλογή του switch/case και μας οδηγεί στο κατάλληλο αρχείο php ώστε να πάρουμε τις πληροφορίες που θέλουμε. Στην τρίτη κάθετο, μπορούμε να βάλουμε κάποια σύντομη περιγραφή της συγκεκριμένης καρτέλας. Τέλος, ακολουθούν κάποιες εντολές δημιουργίας του μενού. Το αντικείμενο που δημιουργήθηκε το μενού δίνει κάποιες λειτουργίες. Αυτές αφορούν το τι θα περιλαμβάνει το μενού, το μέγεθος των εικονιδίων, τις επεκτεινόμενες επιλογές κ.α που δεν είναι απαραίτητα να περιγραφούν. Αμέσως μετά τη δημιουργία του μενού γίνεται η εμφάνισή του μέσω του index.tpl. 4.3 Session sthn istoselðda Ενα από τα προβλήματα που αντιμετωπίσαμε κατά την ανάπτυξη της ιστοσελίδας μας ήταν αυτό του χρόνου και της επανάληψης της εκτέλεσης ίδιων κομματιών του κώδικα. Κατά την εκκίνηση, ο κώδικας «έτρεχε» κάθε φορά και ζητούσε τις ίδιες πληροφορίες για το ίδιο σύστημα από την αρχή. Αυτό όπως είναι φυσικό, είχε σαν αποτέλεσμα τη σπατάλη χρόνου και την επεξεργασία των δεδομένων από την αρχή κάθε φορά. Ετσι, ήταν αναγκαία η εισαγωγή κάποιου συστήματος προσωρινής αποθήκευσης των δεδομένων. Για το λόγο αυτόν χρησιμοποιήσαμε τα session της PHP ώστε να λύσουμε το συγκεκριμένο πρόβλημα. Κάθε φορά που τρέχει η ιστοσελίδα μας ξεκινάει το SESSION με την εντολή: session_ start (); Ετσι δημιουργούμε έναν χώρο στον SERVER/PC ώστε να κρατάμε κάποια δεδομένα. Αυτά αφορούν κάθε συσκευή που θέλουμε ξεχωριστά. Οταν δίνουμε μια IP στην ιστοσελίδα μας, αυτή αποθηκεύεται στον πίνακα των SESSION. Ενα παράδειγμα του πίνακα των SESSION δίνεται στην παρακάτω εικόνα: 37

38 SESSION -> [ IP1 ] -> Systable -> ARPtable -> [ IP2 ] -> Systable -> ARPtable -> [ IP3 ] -> Systable -> ARPtable Λειτουργία του Session Κάθε φορά που μπαίνουμε στην ιστοσελίδα και αφού ξεκινήσει το SESSION, γίνεται ένας έλεγχος για το αν έχουμε επισκεφτεί ξανά τη συσκευή με τη συγκεκριμένη IP. Αυτό γίνεται με την εντολή της PHP: isset ( $_SESSION [ $host ][ views ]) Ετσι, με έναν απλό έλεγχο μπορούμε να δούμε αν έχουμε ξαναπάρει πληροφορίες από τη συγκεκριμένη συσκευή. Στην περίπτωση που έχουμε επισκεφτεί τη συσκευή αυτή, ο μετρητής αυξάνεται κατά ένα και μας δείχνει το πόσες φορές την έχουμε επισκεφτεί αλλιώς ο μετρητής μας δείχνει απλώς ότι είναι η πρώτη φορά που επισκεφτήκαμε τη συγκεκριμένη συσκευή αυτήν. Στη συνέχεια της ροής της ιστοσελίδας, αφού έχουμε δώσει νέα IP και Cοmmunity name (πρώτη φορά), γίνεται ένας έλεγχος για το αν είναι ήδη διαθέσιμες οι πληροφορίες, πράγμα που σημαίνει ότι έχουμε ξαναδεί αυτήν τη συσκευή και απλώς να τις εμφανίσουμε, ή αν δεν έχουμε ξαναδεί τη συσκευή αυτή να δημιουργήσουμε από την αρχή πίνακες στο SESSION για την IP της συσκευής. if( isset ( $_SESSION [ $host ][ systable ])){ $smarty -> assign ( systable, $_SESSION [ $host ][ systable ]); else { $_SESSION [ $host ][ systable ] = array ( host => array ( Host IP, $host ), sysname => array ( Name, snmpget (" $host ", " $community "," ")), sysdescr => array ( Desrciption,, snmpget (" $host ", " $community "," " ))); $smarty -> assign ( systable, $_SESSION [ $host ][ systable ]); Το παραπάνω παράδειγμα κώδικα δείχνει τον τρόπο με τον οποίο αποθηκεύουμε τα δεδομένα μας σε πίνακες του SESSION. Ετσι για κάθε IP έχουμε υπό-πίνακες που δείχνουν σε στοιχεία που έχουμε λάβει από τις συσκευές. Οταν δημιουργείται εκ νέου ένας πίνακας από IP, έχουμε έναν πίνακα SESSION[host] ο οποίος περιέχει έναν πίνακα SESSION[Host][Systable] που περιέχει τα δεδομένα που θέλουμε. Με 38

39 τις εντολές του SNMP, snmpget() παίρνουμε τα δεδομένα και τα αποθηκεύουμε απευθείας στο SESSION. Αφού ολοκληρωθεί η λήψη των δεδομένων, αναθέτουμε τον πίνακα του SESSION στο Smarty για εμφάνιση. Στο σημείο αυτό θα πρέπει να σημειώσουμε ότι στις περισσότερες περιπτώσεις δεν αναθέτουμε τιμές στο SESSION, αλλά ολόκληρους πίνακες. Αυτό γίνεται διότι όταν παίρνουμε τιμές από μία συσκευή, όπως για παράδειγμα, ένα Routing Table (πίνακας δρομολόγησης), δε θέλουμε μόνο μία τιμή αλλά ολόκληρο το Routing Table κάθε φορά. Ετσι, κάθε φορά που θέτουμε ένα πίνακα στο SESSIOΝ, χρειάζεται η κατάλληλη επεξεργασία ώστε να γίνουν κατανοητά και ορθά τα δεδομένα. Ενα ακόμα στοιχείο που περιέχεται στην ιστοσελίδα και συγκεκριμένα στο index.php, αλλά εμφανίζεται παντού ώστε να είναι διαθέσιμο, είναι το παράθυρο Visited IP. Σε αυτό εμφανίζεται το ιστορικό των τελευταίων πέντε συσκευών που έχουμε επιτυχώς επισκεφθεί. Αυτό πραγματοποιήθηκε με τη χρήση του session. Κατά την πρώτη φορά που ανοίγει η ιστοσελίδα, γίνεται ένας έλεγχος για το αν έχει δοθεί IP διεύθυνση και community name. Εφόσον είναι η πρώτη φορά, δεν υπάρχει περίπτωση να υπάρχει IP διεύθυνση και έτσι περνάει σε διαδικασία όπου πρέπει να εισάγουμε δεδομένα. Μετά τον έλεγχο, γίνεται ένας πρόσθετος έλεγχος για να δούμε αν έχει δημιουργηθεί ο πίνακας του session $ SESSION[Vhosts]. Αυτός ο πίνακας θα περιέχει τις διευθύνσεις που επισκεπτόμαστε κάθε φορά. Υ- πενθυμίζουμε ότι όταν ανοίγει η σελίδα για πρώτη φορά, γίνεται έλεγχος για το αν έχει δοθεί IP αλλά και όταν επιλέγουμε να δώσουμε νέα IP, ξαναγίνεται ο ίδιος έλεγχος. Ετσι, εφόσον είναι η πρώτη φορά που ανοίξαμε την ιστοσελίδα και δεν έχει δημιουργηθει ο πίνακας Vhosts, δημιουργείται επίσης και ο πίνακας VChosts, ο οποίος περιέχει τα community names για την κάθε visited IP του πίνακα και τέλος, αρχικοποιούμε την πρώτη θέση του πίνακα στην τιμή No IP given. Στη συνέχεια, αναθέτουμε στο Smarty την εμφάνιση του παράθυρου αυτού. Εχουμε ήδη αναφέρει το πώς γίνεται ο έλεγχος της IP διεύθυνσης που εισάγουμε κάθε φορά. Αμέσως μετά από αυτόν τον έλεγχο, χρησιμοποιείται ένας νέος έλεγχος για το Vhosts. Ο έλεγχος αυτός περιλαμβάνει τρεις περιπτώσεις. 1. Αν στην πρώτη θέση του πίνακα αυτού, υπάρχει η τιμή No IP given, τότε αντικαθιστά αυτήν την τιμή με την IP διεύθυνση που δώσαμε και θέτει στην πρώτη θέση του πίνακα VChosts το αντίστοιχο community name. 2. Ελέγχουμε αν το πλήθος των στοιχείων του πίνακα Vhosts είναι ίσο με πέντε και αν στον πίνακα περιέχεται η διεύθυνση IP που χρησιμοποιείται τη συγκεκριμένη χρονική στιγμή. Αν το πλήθος είναι ίσο με πέντε και δεν υπάρχει ήδη η διεύθυνση IP στον πίνακα, τότε με έναν βρόχο αντικαθίσταται η πρώτη τιμή του πίνακα από τη δεύτερη, η δεύτερη τιμή του πίνακα με την τρίτη και ούτω καθεξής, όπως και για τον πίνακα VChosts και τέλος, στην πέμπτη τιμή των δύο αυτων πινάκων, τοποθετείται η IP και το community name. 3. Γίνεται απλώς ο έλεγχος για το αν υπάρχει η IP αυτή στον πίνακα. Αν δεν υπάρχει τότε τον τοποθετεί και συνεχίζεται η ροή του προγράμματος. Για την υλοποίηση αυτής της λειτουργίας, χρησιμοποιούμε το session το οποίο μας δίνει τη δυνατότητα να «κρατάμε» τις τιμές για άλλες χρήσεις. Ο κώδικας που υλοποιήθηκε η διαδικασία αυτή δίνεται παρακάτω. if ( $_SESSION [ Vhosts ][0]== No IP given ){ 39

40 $_SESSION [ Vhosts ][0]= $host ; $_SESSION [ VChosts ][0]= $community ; elseif ( count ( $_SESSION [ Vhosts ])==5 &&! in_array ( $host, $_SESSION [ Vhosts ])){ $temp = array (); for ($i =0; $i <4; $i ++){ $temp [0][ $i ]= $_SESSION [ Vhosts ][ $i +1]; $temp [1][ $i ]= $_SESSION [ VChosts ][ $i +1]; $temp [0][4]= $host ; $temp [1][4]= $community ; $_SESSION [ Vhosts ]= null ; $_SESSION [ VChosts ]= null ; $_SESSION [ Vhosts ]= $temp [0]; $_SESSION [ VChosts ]= $temp [1]; // elseif elseif (! in_array ( $host, $_SESSION [ Vhosts ])) $_SESSION [ Vhosts ][ count ( $_SESSION [ Vhosts ])]= $host ; $_SESSION [ VChosts ] [ count ( $_SESSION [ VChosts ])]= $community ; // if ( Net_CheckIP :: check_ip ( $host )) else { $smarty -> assign ( errmsg, " Not a valid IP"); $smarty -> assign ( IPbox, $IPbox ); if (! isset ( $_SESSION [ Vhosts ])){ $_SESSION [ Vhosts ]= array (); $_SESSION [ VChosts ]= array (); $_SESSION [ Vhosts ][0]= No IP given ; $smarty -> assign ( IPbox, $IPbox ); Αποτελέσματα σχετικά με το Session Φαίνεται ξεκάθαρα ότι με τη χρήση των SESSION γλιτώνουμε κόστος τόσο σε χρόνο όσο και σε επεξεργασία αφού δε χρειάζεται να επαναλαμβάνεται η χρήση ίδιων κομματιών κώδικα για να πάρουμε τις ίδιες πληροφορίες. Παρ ολα αυτά, σε περίπτωση που απαιτείται η λήψη των δεδομένων από την αρχή, δημιουργήθηκε μία επιλογή στο μενού (επιλογή Reset Session) ώστε να διαγράφεται το SESSION και να γίνεται εκ νέου η λήψη των δεδομένων. Για παράδειγμα ένα Routing Table (Πίνακας Δρομολόγησης) είναι μεταβαλλόμενο ανά τακτά χρονικά διαστήματα. Ετσι, αν χρειαζόμαστε κάποιο νέο στιγμιότυπο του πίνακα, απλώς πρέπει να διαγραφεί το SESSION και να επαναληφθεί η λήψη των διαφόρων πινάκων που αφορούν το Routing Table, να ξαναγίνει η επεξεργασία και να σταλούν στο Smarty όλοι οι πίνακες για να γίνει σωστή και ανανεωμένη εμφάνιση του πίνακα δρομολόγησης. 40

41 5 Cisco suskeuèc Ενα από τα σημαντικά κομμάτια της πτυχιακής αφορά τις Cisco συσκευές καθώς και την ανακάλυψη ολόκληρου του δικτύου. Οπως είναι λογικό, μέσω του SNMP μπορούμε να πάρουμε πληροφορίες από πολλές διαφορετικές συσκευές. Ο σκοπός της πτυχιακής ήταν να πάρουμε πληροφορίες από διάφορες συσκευές, να τις επεξεργαστούμε και στη συνέχεια να δώσουμε βαρύτητα στις συσκευές της εταιρίας Cisco που είναι μια από τις μεγαλύτερες εταιρίες στο χώρο των δικτύων. Είναι προφανές ότι ζητώντας τις κατάλληλες πληροφορίες μπορούμε να πάρουμε δεδομένα από οποιαδήποτε εταιρία θέλουμε. Το πώς μπορούμε να κάνουμε κάτι τέτοιο θα το εξηγήσουμε παρακάτω. Εχουμε ήδη αναφερθεί σε κάποια βασικά πράγματα για τη λειτουργία της σελίδας μας. Οταν ο χρήστης εισάγει μια διεύθυνση IP, εκτός των άλλων γίνεται και ο έλεγχος για το αν είναι μια συσκευή Cisco και στη συνέχεια εμφανίζεται η επιλογή Cisco ή όχι στο μενού. Ηδη έχει εξηγηθεί το πώς υλοποιούμε την διαδικασία αυτή με την χρήση της existence() όταν εξηγήθηκε η δημιουργία του μενού. Αφού έχει πραγματοποιηθεί ο έλεγχος της IP και του community name, καθώς και η κλήση της existence() θα δημιουργηθεί το μενού με τις επιλογές για τις συσκευές Cisco. Οπως είπαμε, οι πληροφορίες που παίρνουμε για τις συσκευές Cisco είναι από το πρωτόκολλο CDP. Ετσι, μπορούμε να πάρουμε διάφορες πληροφορίες σχετικά με μια Cisco συσκευή χρησιμοποιώντας απλώς το αντίστοιχο MIB της Cisco, το οποίο, είναι διαδεδομένο και μπορούμε να το χρησιμοποιήσουμε. Ενα σημαντικό στοιχείο είναι ότι μπορούμε να τα χρησιμοποιήσουμε απευθείας από το διαδίκτυο, χωρίς να χρειαστεί να αποθηκεύσουμε ολόκληρο το ΜΙΒ, απλώς γράφοντας το αντίστοιχο OID της πληροφορίας που μας ενδιαφέρει. 5.1 CDP Για να πάρουμε πληροφορίες σχετικά με τις Cisco συσκευές, έγινε η χρήση του πρωτοκόλλου CDP. Το πρωτόκολλο CDP ( Cisco Discovery Protocol) είναι ένα πρωτόκολλο που δημιουργήθηκε από την Cisco και χρησιμοποιείται απο τις συσκευές της. Η δουλειά του είναι να ανακαλύπτει τις άμεσα συνδεδεμένες συσκευές που βρίσκονται στην αρχική συσκευή που χρησιμοποιούμε. Οταν μία συσκευή Cisco έχει ενεργό το πρωτόκολλο CDP, στέλνει μηνύματα προς τους γείτονες (άμεσα συνδεδεμένες συσκευές), ώστε να κοινοποιήσει την παρουσία της και να ανακαλύψει τους γείτονές της. Αυτό βέβαια, ισχύει μόνο για τις Cisco συσκευές οι οποίες έχουν ενεργό το πρωτόκολλο αυτό. Στην ιστοσελίδα μας θέλαμε να δούμε ποιες συσκευές είναι άμεσα συνδεδεμένες στη συγκεκριμένη συσκευή που θέλουμε. Ετσι, χρησιμοποιήσαμε το πρωτόκολλο CDP ώστε να ανακαλύψουμε τις συσκευές αυτές. Αυτό που κάναμε είναι να βρούμε ποιες είναι αυτές οι συσκευές μέσω των IP διευθύνσεων που υπάρχουν διαθέσιμες στους πίνακες που κρατάει το CDP και να κάνουμε ερωτήματα στις συσκευές αυτές, για να πάρουμε τις πληροφορίες που θέλουμε. Παρακάτω βλέπουμε ένα κομμάτι των αποτελεσμάτων αυτής της διαδικασίας. Οι βασικές πληροφορίες που πήραμε για τις Cisco συσκευές είναι οι εξής (τα δεδομένα τα πήραμε από την ιστοσελίδα μας και απλώς εδώ τα εμφανίζουμε με τη μορφή πίνακα): 41

42 Address DeviceId DevPort Platform IosVer it2 GigabitEthernet0/1 Cisco WS- C G 12.2(50)SE3 Η πρώτη πληροφορία που ζητούμε είναι η cdpcacheaddress η οποία ουσιαστικά μέσω του CDP μας επιστρέφει όλους τους άμεσα συνδεδεμένους γείτονες της συσκευής από την οποία έχουμε ζητήσει τις πληροφορίες. Στη συνέχεια παίρνουμε πληροφορίες σχετικά με το όνομα της συσκευής. Αυτό το ζητούμε μέσω της cdpcachedeviceid. Αμέσως μετά παίρνουμε την πληροφορία σχετικά με τη θύρα του γείτονα στην οποία είμαστε συνδεδεμένοι, διαδικασία που πραγματοποιείται μέσω του cdpcachedeviceport. Η επόμενη στήλη αναφέρεται στο μοντέλο της συσκευής του γείτονα και στη συνέχεια παίρνουμε και το ios version του κάθε γείτονα. Παρακάτω θα παραθέσουμε έναν πίνακα που σχετίζεται με την πληροφορία που ζητούμε καθώς και με το αντίστοιχο OID για καθεμία πληροφορία της συγκεκριμένης καρτέλας. Αρχικά, έχουμε βάλει ένα τμήμα του OID σε μια μεταβλητή για πρακτικούς λόγους. Στη συνέχεια, καλούμε ολόκληρο το OID για τη συγκεκριμένη πληροφορία, έχοντας δώσει φυσικά και το host αλλά και το community name. $mib =" "; $_SESSION [ $host ][ ciscotable ][ CacheAddressType ] = snmpwalk ( $host, $community," $mib.3"); $_SESSION [ $host ][ ciscotable ][ CacheAddress ] = snmpwalk ( $host, $community," $mib.4"); $_SESSION [ $host ][ ciscotable ][ CacheDevicePort ] = snmpwalk ( $host, $community," $mib.7"); $_SESSION [ $host ][ ciscotable ][ CachePlatform ] = snmpwalk ( $host, $community," $mib.8"); Τα παραπάνω είναι απλά παραδείγματα για να δούμε πως ζητούμε πληροφορίες σχετικά με μια Cisco συσκευή. Οπως παρατηρούμε η διαδικασία δε διαφέρει σε κάτι από το να ζητήσουμε μια πληροφορία από μια οποιαδήποτε συσκευή. 42

43 6 EÔresh Cisco diktôou Η επόμενη επιλογή στο μενού μας σχετικά με τη Cisco είναι να πάρουμε μέσω του πρωτοκόλλου cdp, πληροφορίες σχετικά με τις συσκευές που υλοποιούν το πρωτόκολλο αυτό το οποίο ουσιαστικά μας δίνει ολόκληρο το δίκτυο (CDP Network). Η διαδικασία που ακολουθείται για να ανακαλυφθεί ολόκληρο το CDP Network περιγράφεται αναλυτικά παρακάτω ενώ ακολούθως αναλύονται όλες οι διαδικασίες και οι συναρτήσεις που χρησιμοποιήθηκαν για να βγάλουμε ένα σωστό αποτέλεσμα. Η όλη διαδικασία γίνεται με τη χρήση τριών πινάκων. Temp - πίνακας για προσωρινή αποθήκευση ip Visited - πίνακας με τις ip του δικτύου που έχουμε ήδη επισκεφτεί To Search - οι ip τις οποίες θα ψάξουμε να βρούμε Η διαδικασία αυτή, με τη χρήση κατάλληλων συναρτήσεων μας δίνει στον πίνακα visited, όλες τις IP των Cisco συσκευών του δικτύου. Θα δούμε όλα τα βήματα ένα προς ένα για να διαπιστώσουμε πως φτάνουμε στην τελική μορφή έχοντας ολόκληρο το δίκτυο. Εν πρώτοις, έχουμε μια IP την οποία εισάγουμε στον to search. Η IP αυτή είναι η IP της Cisco συσκευής από την οποία παίρνουμε τις πληροφορίες. Στη συνέχεια, μέσω του SNMP ζητάμε όλες τις IP των γειτόνων της συγκεκριμένης συσκευής και εισάγουμε το αποτέλεσμα αυτής της αναζήτησης στον πίνακα tmp. Ο tmp τώρα περιέχει τους γείτονες της αρχικής συσκευής που είχαμε. Ακολούθως προσθέτουμε στο visited την IP από την οποία πήραμε τους γείτονες. Αυτό γίνεται με τη χρήση μιας συνάρτησης η οποία δίνει στο visited μόνο τις IP τις οποίες δεν περιέχει ήδη. Η λειτουργία της αναλύεται παρακάτω. Μετά από αυτή τη διαδικασία συγκρίνουμε τον tmp με τον visited έτσι ώστε ο tmp να μην «ψάξει» ξανά IP που περιέχονται στο visited. Στη συνέχεια ο to search παίρνει τις τιμές του tmp ώστε να ψάξουμε για αυτές τις IP. Η διαδικασία αυτή επαναλαμβάνεται όσο ο to search έχει εγγραφές, ενώ με τη χρήση κατάλληλων συναρτήσεων μας δίνει, στον πίνακα visited, όλες τις IP των Cisco συσκευών του δικτύου. Θα δούμε όλα τα βήματα ένα προς ένα για να διαπιστώσουμε πως φτάνουμε στην τελική μορφή έχοντας ολόκληρο το δίκτυο. Ακολουθεί ο κώδικας για αυτή τη διαδικασία. while ( $to_search!= null && is_array ( $to_search ) && count ( $to_search ) >0 ){ $tmp = $snmp -> multi_walk ( $to_search, " ", $community ); $tmp = fixtmp ( $tmp ); $visited = addnewip ( $visited, $to_ search ); $tmp = array_diff ($tmp, $visited ); $to_search = $tmp ; $to_search = clear_to_search ( $to_search ); // while Στον κώδικά μας παρεμβάλλονται και κάποιες συναρτήσεις οι οποίες αναλύονται παρακάτω. Η πρώτη συνάρτηση η οποία συναντάμε είναι η fixtmp η οποία σβήνει τους υπό-πίνακες και βάζει όλα τα στοιχεία σε ένα πίνακα και στο τέλος μας επιστρέφει τον πίνακα αυτό. Παραθέτουμε τον κώδικα της συνάρτησης: 43

44 function fixtmp ( $tmp ){ $key =0; $tmp2 = array (); foreach ( $tmp as $temp ){ foreach ( $temp as $t ){ if ( strlen ($t )==11) $tmp2 [ $key ++]= $t; $tmp = null ; $tmp = $tmp2 ; $tmp = fixiphexdec ( $tmp ); return $tmp ; Οπως παρατηρούμε η fixtmp καλεί την fixiphexdec της οποίας η λειτουργία είναι η μετατροπή των IP από δεκαεξαδική μορφή σε δεκαδική. Η συνάρτηση fix- IpHexDec() χρησιμοποιείται και από το Cisco.php όπου ουσιαστικά, το SNMP επιστρέφει την ίδια μορφή IP. Επειδή υπάρχουν κάποιες συναρτήσεις που χρησιμοποιούνται από περισσότερα από ένα αρχεία, θεωρήσαμε σκόπιμο να δημιουργήσουμε ένα νέο αρχείο, το οποίο θα περιλαμβάνει τις κοινά χρησιμοποιούμενες συναρτήσεις, ώστε να μην χρειάζεται να αντιγράφονται. Παρακάτω δίνεται ο κώδικας της συνάρτησης αυτής και αμέσως μετά εξηγείται η λειτουργία της. function fixiphexdec ( $iptofix ){ for ($x =0; $x < sizeof ( $iptofix ); $x ++){ if( $iptofix [$x ]!= "" $iptofix [$x ]!= $iptofix [$x ]!= null ){ $iphexdecarr = str_split ( $iptofix [$x],"3"); $iphexdecarr [0] = str_replace ( ", "", $iphexdecarr [0]); $iphexdecarr [4] = null ; for ($i =0; $i < sizeof ( $iphexdecarr ); $i ++){ $iphexdecarr [$i ]= hexdec ( $iphexdecarr [$i ]); $iptofix [$x ]=" $iphexdecarr [0]. $iphexdecarr [1]. $iphexdecarr [2]. $iphexdecarr [3] "; else { $iptofix [$x ]= no IP ; return $iptofix ; Η συνάρτηση χρησιμοποιώντας ένα βρόχο επανάληψης, χωρίζει κάθε τιμή του πίνακα $iptofix, που αντιστοιχεί σε μία δεκαεξαδική ΙP, σε ένα νέο πίνακα ανά τρείς χαρακτήρες, δηλαδή η IP σε δεκαεξαδική μορφή: 44

45 "C0 A " Θα μπει σε ένα πίνακα όπου θα είναι: [ 0 ] > C0 [ 1 ] >A8 [ 2 ] >10 [ 3 ] >83 [ 4 ] > Από αυτόν τον πίνακα ζητάμε να αντικατασταθούν τα με κενό από την πρώτη θέση του πίνακα και επίσης ορίζουμε σαν null την τελευταία θέση του πίνακα όπου είναι πάντα. Αυτό γίνεται γιατί η IP είναι σταθερού μεγέθους οπότε και μπορούμε να έχουμε στατικά την θέση αυτή του πίνακα. Μετά με έναν βρόχο επανάληψης αλλάζουμε την κάθε τιμή του πίνακα από δεκαεξαδικό αριθμό σε δεκαδικό. Τέλος στον παλιό πίνακα μας ενώνουμε την IP διεύθυνση και την επιστρέφουμε. Η επόμενη συνάρτηση που συναντάμε είναι η addnewip με την οποία ελέγχονται οι πίνακες visited και to search αν έχουν ίδια στοιχεία. Αν υπάρχουν ίδια στοιχεία τότε τα παραβλέπει, διαφορετικά βάζει την IP, την οποία ελέγχουμε στο visited, και στο τέλος μας επιστρέφει τον visited. function addnewip ( $v, $t_ s ){ foreach ( $t_ s as $t ){ $key = sizeof ($v ); for ($i =0; $i <= $key ; $i ++){ if ( array_search ($t, $v )=== false!( in_array ($t, $v )) $t!= $v[$i ] $t!= ) $v[ $key ]= $t; return $v; Βλέπουμε ότι στη addnewip καλούμε επίσης και την array search η οποία ψάχνει αν υπάρχει το $t (IP του πίνακα to search) στον πίνακα $v (πίνακας $visited). Στην συνέχεια καλούμε και την in array, και ελέγχουμε επίσης αν το $t με το $v[$i] είναι διαφορετικό ενώ στο τέλος γίνεται έλεγχος αν υπάρχει μηδενική IP. Ακολούθως, στην κανονική ροή του προγράμματος, χρησιμοποιούμε την array diff η οποία είναι μια συνάρτηση της PHP και μας επιστρέφει τις διαφορές του πρώτου πίνακα και του δεύτερου. Στη δικιά μας περίπτωση μας επιστρέφει τις διαφορές του tmp από το visited. Η τελευταία συνάρτηση που χρησιμοποιούμε μέσα στον βρόχο while είναι η clear to search η οποία «καθαρίζει» τον πίνακα to search από μηδενικές IP και από null τιμές. function clear_ to_ search ( $to_ search ){ $s =0; $arrts = array (); $size = sizeof ( $to_search ); for ($i =0; $i <= sizeof ( $to_search ); $i ++){ if ( $to_search [$i ]!=

46 $to_search [$i ]!= null $to_search [$i ]!= $to_search [$i ]!= "") { $temp = $to_search [$i ]; $s +=1; for ($s; $s <= $size ;$s ++ if( $temp == $to_search [$s] $to_search [$s ]== ) $to_search [$s ]= null ; $s=$i; $arrts [ sizeof ( $arrts )]= $temp ; $arrts = fixarray ( $arrts ); return $arrts ; Στην clear to search παρατηρούμε επίσης ότι καλούμε και την fixarray η οποία καθαρίζει από null τιμές τον πίνακα. function fixarray ( $arr ){ $x =0; $temp = array (); foreach ( $arr as $a ){ if($a!= null $a!= $a!="") $temp [$x ++]= $a; $arr = null ; $arr = $temp ; return $arr ; Στη συνέχεια της ροής του προγράμματος, παίρνουμε τις πληροφορίες που χρειαζόμαστε από τις συσκευές οι οποίες είναι οι εξής: Device Ip System Description System IOS Version Interfaces Name Time it catalyst355012g 19days 11hours 12.2(44)SE3 27 Οι πληροφορίες που παίρνουμε είναι η Device IP, την οποία παίρνουμε από τον πίνακα visited και είναι οι IP όλου του δικτύου. Στη συνέχεια, παίρνουμε το system name που είναι το όνομα της συσκευής. Αμέσως μετά, ζητάμε το μοντέλο της συσκευής και έπειτα το χρόνο που είναι ανοιχτή η συγκεκριμένη συσκευή. Το IOS Version το παίρνουμε μέσα από μια διαφορετική διαδικασία η οποία θα αναλυθεί παρακάτω και τέλος, παίρνουμε τον αριθμό των interface. Πρέπει να σημειώσουμε εδώ την ύπαρξη μιας διαφοροποίησης. Λόγω του ό- τι υπήρχαν προβλήματα με τη διαχείριση των κενών τιμών των πινάκων, λόγω 46

47 συσκευών που δεν επέστρεφαν τιμές, ενώ είναι CISCO συσκευές, όπως για παράδειγμα IP τηλέφωνα, έπρεπε να έχουμε τον πίνακα $visited με όλες τις χρήσιμες IP, δηλαδή, αυτές που μπορούν να επιστρέψουν πληροφορίες. Οπότε έγινε δυνατή η χρήση του $cdpdescr, ο οποίος είναι ένας πίνακας που έχει όλα τα description από όλες τις CISCO συσκευές που λειτουργούν και μπορούν να δώσουν πληροφορίες σε ολόκληρο το δίκτυο. Αφού υπήρχαν διαθέσιμες οι πληροφορίες με τη χρήση του phpsnmp, μπορούσαμε να κάνουμε διαφορετική επεξεργασία σε σχέση με αυτήν του NET-SNMP. Οταν επέστρεφε πληροφορίες το NET-SNMP με τη χρήση της εντολής snmpwalk(), το αποτέλεσμα ήταν ένας πίνακας όπου κάθε δείκτης ήταν ένας αύξων αριθμός και σαν τιμή είχε την πληροφορία ακόμα και όταν δεν υπήρχε κάποια πληροφορία. Στο παράδειγμα παρακάτω γίνεται απόλυτα κατανοητός ο τρόπος που γίνεται αυτό. Στιγμιότυπο του πίνακα ARP Table : Array ( [ ifindex ] = > Array ( [0] => 1 [1] => 2... [13] => 14 [14] => 15 [15] => 16 [ ifdescr ] = > Array ( [0] = > GigabitEthernet0 /1 [1] = > GigabitEthernet0 /2... [13] => Vlan1 [14] => Tunnel1 [15] => Loopback0 [ ifspeed ] = > Array ( [0] => 1 Gbps [1] => 1 Gbps... [13] => 1 Gbps [14] => null [15] => 4.29 Gbps Ενώ με την χρήση του phpsnmp, η εμφάνιση των πινάκων γίνεται ως εξής: 47

48 Array ( [ ] => Array ( [ ] => ) [ ] => Array ( [ ] => ) [ ] => Array ( [ ] => ) [ ] => Array ( ) Βλέπουμε την διαφορά με τη χρήση NET-SNMP και phpsnmp. Οταν χρησιμοποιούμε το phpsnmp οι πληροφορίες που μας επιστρέφει έχουν διαφορετική μορφή από αυτή του net snmp. Το phpsnmp μας επιστρέφει ένα πίνακα με ένα δείκτη την IP όπου έχει σαν υπό-πίνακα, ένα πίνακα με δείκτη το OID το οποίο έχει την τιμή που θέλουμε. Για παράδειγμα: Array ( [ ] => [ ] => catalyst355012g ) Προκειμένου να έχουμε τον πίνακα σε μια μορφή που να μπορούμε να τον επεξεργαστούμε εύκολα και γρήγορα, χρησιμοποιούμε τη συνάρτηση fixthearray: function fixthearray ( $arraytofix, $oid, $ip ){ $vis3 = array (); for ($i =0; $i < sizeof ( $arraytofix ); $i ++){ $vis3 [$i ]= $arraytofix [ $ip [$i ]]; $arraytofix = null ; for ($i =0; $i < sizeof ( $vis3 ); $i ++){ if( $vis3 [$i ][ $oid ]!= null ) $arraytofix [$i ]= $vis3 [$i ][ $oid ]; else $arraytofix [ $i ]= null ; return $arraytofix ; 48

49 η οποία στην ουσία παίρνει τη χρήσιμη πληροφορία και φτιάχνει ένα πίνακα με δεκαδικούς δείκτες και τιμές την πληροφορία που θέλουμε. Ενα από τα προβλήματα που παρουσιάστηκαν κατά την εμφάνιση του δικτύου ήταν η μορφή του χρόνου. Αρχικά, είχαμε το χρόνο σε δευτερόλεπτα με τα κλάσματα του δευτερολέπτου στο τέλος. Οπως ήταν αναμενόμενο, παρουσιάζοντας έτσι το χρόνο ήταν δυσνόητος από τον οποιοδήποτε και δεν εξυπηρετούσε κάποιο σκοπό. Για το λόγο αυτό δημιουργήσαμε μια συνάρτηση σύμφωνα με την οποία επεξεργαζόμαστε αυτόν τον αριθμό και τον εμφανίζουμε στην κατάλληλη μορφή. Αυτό που κάνουμε αρχικά, είναι να υπολογίσουμε τις μέρες, στη συνέχεια τις ώρες και τελικά τα δευτερόλεπτα αφού πρώτα έχουμε αφαιρέσει από το αρχικό νούμερο τα κλάσματα του δευτερολέπτου. Στη συνέχεια γίνεται ο έλεγχος για την ύπαρξη μηδενικών τιμών των ημερών ή των ωρών. Σε αυτή την περίπτωση αποθηκεύονται μόνο οι μή μηδενικές τιμές της μεταβλητής του χρόνου. Στο τέλος, γίνεται η αποθήκευση σε μια εγγραφή του πίνακα του κάθε αποτελέσματος και η εμφανισή του στην τελική του μορφή. function calctime ( $sec ) { $str = array (); $count = strlen ( $sec ); $sec = substr_replace ($sec,, ( $count -2),2); $d = intval ( $sec /86400); $sec -= $d * 86400; $h = intval ( $sec /3600); $sec -= $h * 3600; $m = intval ( $sec /60); $sec -= $m * 60; if($d >0) $str = $d. days.$h. hours ; elseif ($d ==0 && $h >0) $str = $h. hours.$m. min ; elseif ( $d ==0 && $h ==0 && $m >0) $str = $m. min. $sec. sec ; return $str ; Μια ακόμα συνάρτηση που δημιουργήσαμε αφορά στη σωστή εμφάνιση του IOS Version της κάθε συσκευής. Για να πάρουμε το IOS Version, καθώς δεν είναι δεδομένο ότι υπάρχει για κάθε συσκευή χρησιμοποιήσαμε το System Description και από εκεί μέσα εμφανίσαμε την πληροφορία που μας ενδιέφερε. Το System Description εμφανίζει πληροφορίες όπως φαίνεται παρακάτω. Cisco IOS Software, C3550 Software ( C IPSERVICESK9 -M), Version 12.2(44) SE3, RELEASE SOFTWARE ( fc2 ) Copyright ( c ) by Cisco Systems, Inc. Compiled Mon 29 - Sep : 21 by nachen 49

50 Από όλες αυτές τις πληροφορίες, χρειαζόμασταν μόνο το IOS Version. Για να μπορέσουμε να πάρουμε τη συγκεκριμένη πληροφορία έπρεπε πρώτα να επεξεργαστούμε την έξοδο του System Description. Για το λόγο αυτό δημιουργήθηκε μια συνάρτηση η getversion η οποία φαίνεται παρακάτω. function getversion ( $io ){ $i =0; foreach ( $io as $sys ){ $sysdfix [$i] = explode (", Version ", $sys ); $temp [$i ]= $sysdfix [$i ][1]; $i ++; $i =0; foreach ( $temp as $t ){ $t2 [$i ]= explode (", ", $t ); $io [$i ]= $t2 [$i ][0]; $i ++; return $io ; Αυτό στο οποίο μας διευκολύνει η συγκεκριμένη συνάρτηση είναι να εντοπίζουμε την πληροφορία της έκδοσης (Version) και να κόβουμε την πρόταση μέχρι το αμέσως επόμενο κόμμα. Αυτό, λόγώ της μορφής του System Description μας δίνει μόνο την πληροφορία της έκδοσης. Στη συνέχεια, απλώς κόβουμε ότι υπάρχει μετά το Version. Αυτό γίνεται αναζητώντας το πρώτο κόμμα μετά το Version και στη συνέχεια κόβοντας ό,τι υπάρχει μετά από αυτό. Ετσι, ουσιαστικά, έχουμε μόνο την πληροφορία που μας ενδιαφέρει και αυτό είναι το IOS Version στην παρακάτω μορφή: 12.2(44) SE3 Αφού χρησιμοποιήσαμε διάφορες συναρτήσεις και το SNMP, ώστε να πάρουμε πληροφορίες για το πρωτόκολλο CDP, καταλήξαμε στο να έχουμε ολόκληρο το δίκτυο, και στην προκειμένη περίπτωση εκείνο του ΤΕΙ. Μέρος του αποτελέσματος φαίνεται στον πίνακα παρακάτω. Να σημειωθεί ότι, χρησιμοποιώντας την ιστοσελίδα σε διαφορετικό δίκτυο, αν αυτό είναι CISCO δίκτυο ή οι συσκευές που υποστηρίζουν το πρωτόκολλο CDP, μπορούμε επίσης να πάρουμε την ίδια πληροφορία. Device Ip System Name Description System Time it catalyst355012g 21days 7hours it2 catalyst355012g 3days itinfo210a. it.teithe. gr itinfo201a catalyst297024ts catalyst295048g 14hours 4days 21hours 4days 21hours IOS Version Interfaces 12.2(44)SE (50)SE (25)SEE (22)EA4a 52 50

51 7 Perigraf kai anˆlush mejìdwn Στο κεφάλαιο αυτό γίνεται περιγραφή των συναρτήσεων και των διαδικασιών που χρησιμοποιήσαμε για την οργάνωση των δεδομένων μας, από πρωτογενή μορφή στο τελικό αποτέλεσμα. Θα δούμε τις σημαντικότερες διαδικασίες και συναρτήσεις που δημιουργήσαμε, προκειμένου να έχουμε το επιθυμητό αποτέλεσμα για κάθε αρχείο που τις χρησιμοποιεί και θα αναλύουμε κάθε συνάρτηση που χρησιμοποιήσαμε. ARP Table Ξεκινάμε με το αρχείο ARP.php και η πρώτη συνάρτηση που θα δούμε είναι η fixmac() η οποία διορθώνει τη MAC address που μας δίνει το SNMP request. Οταν κάνουμε ένα SNMP request για να πάρουμε τη MAC address ενός σταθμού, η διεύθυνση αυτή επιστρέφεται στην ακόλουθη μορφή: 0:d:66:fe:ec:6f Βλέπουμε ότι η MAC address παραπάνω, δεν είναι στην απαιτούμενη μορφή, λόγω του ότι η MAC address είναι πάντα σε δεκαεξαδική μορφή 12 χαρακτήρων και όχι λιγότερων όπως φαίνεται εδώ. Η σωστή μορφή εμφάνισης της διεύθυνσης αυτής, θα έπρεπε να είναι ως εξής: 00:0d:66:fe:ec:6f Λόγω του προβλήματος αυτού, δημιουργήσαμε τη συνάρτηση fixmac(), η οποία ουσιαστικά διορθώνει το πρόβλημα της εμφάνισης της MAC address. Η συνάρτηση βρίσκεται στο αρχείο Funcs.php για τον λόγω του ότι χρησιμοποιείται και από το αρχείο iftable.php, το οποίο θα αναλυθεί αργότερα. Παρακάτω βλέπουμε τη συνάρτηση αυτή. function fixmac ( $macw ){ $c =0; foreach ( $macw as $mac ){ $tof = $mac ; $tofa = explode (":", $tof ); for ($i =0; $i <= sizeof ( $tofa ); $i ++){ if ( strlen ( $tofa [$i ])==1){ $tofa [$i ]="0". $tofa [$i ]; $macw [$c ]= $tofa [0]. ":". $tofa [1]. ":". $tofa [2]. ":". $tofa [3]. ":". $tofa [4]. ":". $tofa [5]; $c ++; return $macw ; Η συνάρτηση δουλεύει με τον εξής τρόπο: αρχικά, καλούμε τη συνάρτηση δίνοντας ως παράμετρο τον πίνακα με τα στοιχεία που μας έδωσε το SNMP. Στη 51

52 συνέχεια, για κάθε ένα στοιχείο του πίνακα αυτού, γίνεται ξεχωριστά η επεξεργασία. Παίρνουμε κάθε μία MAC, τη χωρίζουμε ανάλογα με τα διαλυτικά και την αποθηκεύουμε σε έναν ξεχωριστό πίνακα, τον $tofa[]. Για αυτόν τον πίνακα, διαβάζουμε την κάθε τιμή του και ελέγχουμε αν το πλήθος της κάθε τιμής του πίνακα είναι ίσο με ένα (1). Στην περίπτωση αυτή, βάζουμε ένα μηδενικό μπροστά στην τιμή, ακολουθούμενο από την τιμή της μεταβλητής. Είναι γνωστό ότι το μηδενικό δεν αλλάζει κάτι στη διεύθυνση όταν βρίσκεται από αριστερά. Οπότε έχουμε έναν πίνακα με ολόκληρη την MAC address χωρισμένη σε δυάδες. Στη συνέχεια αυτό που μένει είναι να ενώσουμε αυτά τα κομμάτια ώστε να πάρουμε την MAC address. Ετσι, βάζουν την MAC address στον πίνακα $macw[] στην θέση $c. Η μεταβλητή $c είναι ένας μετρητής ο οποίος αλλάζει τιμή κάθε φορά που εισάγουμε μία MAC address στον πίνακα. Η αρχικοποίηση της μεταβλητής αυτής γίνεται στην αρχή της συνάρτησης και χρησιμοποιείται ακόμα και σα δείκτης στον πίνακα $macw[]. Ετσι, στον πίνακα $macw[] απλώς τοποθετούμε με τη σειρά τα στοιχεία του πίνακα $tofa[] ακολουθούμενα από διαλυτικά (:). Τέλος, ο πίνακας επιστρέφεται διορθωμένος και η πορεία του προγράμματος συνεχίζεται κανονικά. Routing table Στο αρχείο routtable.php υπάρχουν αρκετές συναρτήσεις. Οι συναρτήσεις εκείνες που χρησιμοποιήθηκαν δημιουργήθηκαν βάση των πληροφοριών που παρέχει ένα routing table (πίνακας δρομολόγησης). Καταρχήν, πρέπει να βλέπουμε τον τύπο της σύνδεσης της συγκεκριμένης συσκευής στην συσκευή με την IP που δώσαμε (routtype). Οι τύποι που μπορούμε να δούμε είναι οι direct, indirect, other και invalid. Direct(Connected) Ο τύπος αυτός σημαίνει ότι η συσκευή στην οποία αναφέρεται η IP διεύθυνση είναι άμεσα συνδεδεμένη με τη συσκευή που χρησιμοποιούμε ή ότι η IP διεύθυνση είναι υποδίκτυο (subnet). Indirect Η συσκευή που αναφέρεται η IP δεν είναι άμεσα συνδεδεμένη. Δηλαδή μεσολαβεί άλλη συσκευή/ες. Invalid Σημαίνει ότι η διαδρομή προς την IP αυτή, δεν είναι έγκυρη. Other Οταν δεν εμπίπτει σε καμιά από της παραπάνω κατηγορίες. Επιπροσθέτως, ένας πίνακας δρομολόγησης περιέχει τις αντιστοιχίες IP προορισμού(destination IP) IP μέσω της οποίας θα φτάσουμε εκεί (next hop IP). Ο τρόπος που θα φτάσουμε στον προορισμό που μας ενδιαφέρει, μας παρέχεται από το Interface από το οποίο θα αποστείλουμε τα δεδομένα που θέλουμε. Η απόσταση που βρίσκεται ο προορισμός είναι το metric, το οποίο ορίζεται ως μονάδα μέτρησης απόστασης του προορισμού. Πρέπει επίσης να γνωρίζουμε ποιο πρωτόκολλο χρησιμοποιεί η συσκευή μας για τη δρομολόγηση, για παράδειγμα, RIP, OSPF κτλ. Καθώς επίσης, και η Subnet mask του δικτύου η οποία δηλώνει σε ποιο δίκτυο βρίσκεται η συσκευή προορισμού. Ετσι, μια εγγραφή του πίνακα δρομολόγησης θα έχει την εξής μορφή: 52

53 Route Type Destination IP NextHop Address Outgoing Interface Metric Protocol Indirect / Fast Ethernet ciscoigrp 0/0 Η πρώτη συνάρτηση που χρησιμοποιήσαμε είναι η toprefix(), η οποία υπολογίζει το prefix από το subnet mask. Οταν κάναμε ένα SNMP request για να πάρουμε τη μάσκα υπό δικτύου, μας επέστρεφε την μάσκα στην μορφή: Αυτό που θέλαμε εμείς ήταν να παίρνουμε τη μάσκα σαν ένα δεκαδικό αριθμό, και να τον προσαρτήσουμε ακολούθως, στην IP προορισμού. Ετσι, χρησιμοποιήσαμε τη συνάρτηση toprefix() την οποία βλέπουμε παρακάτω: function toprefix ( $RouteMask ){ $prefix = $RouteMask ; $prefix = str_split ( $prefix, 4); for ($i =0; $i <=3; $i ++) $prefix [$i ]= decbin ( $prefix [$i ]); $pre =" $prefix [0] "." $prefix [1] "." $prefix [2] ". " $prefix [3] "; $prefixarr = str_split ( $pre ); $count =0; for ( $i =0; $i <=31; $i ++) if ( $prefixarr [$i ]==1) $count ++; return $count ; Στη συνάρτηση αυτή, δίνεται ως όρισμα η κάθε τιμή της μάσκας υποδικτύου. Α- μέσως μετά, χωρίζεται αυτή η τιμή σε τέσσερα μέρη, τεσσάρων χαρακτήρων το κάθε ένα (συμπεριλαμβάνονται και οι τελείες). Στη συνέχεια, για κάθε μέρος του πίνακα χρησιμοποιούμε τη συνάρτηση της PHP decbin() ώστε να μεταφράσουμε τη δεκαδική μορφή σε δυαδική. Ακολούθως, με την str split() χωρίζουμε όλες τις τιμές της μεταφρασμένης σε δυαδική μορφή μάσκας, σε έναν πίνακα και χρησιμοποιούμε ένα μετρητή ώστε να μετρήσουμε το πλήθος των 1 στον πίνακα αυτόν. Ετσι, επιστρέφουμε την τιμή του μετρητή και έχουμε τη μάσκα υποδικτύου σε δεκαδική μορφή δύο ψηφίων. Επίσης, όπως ήδη γνωρίζουμε, ένας πίνακας δρομολόγησης περιέχει συνήθως μία διαδρομή με μηδενική IP διεύθυνση. Αυτή η διεύθυνση είναι η Default Route. Οι τιμές στα πεδία Route Type και η IP address για αυτήν τη διεύθυνση που μας επιστρέφει το SNMP, είναι αντίστοιχα η indirect και Οπότε, χρειαζόμαστε μία συνάρτηση η οποία θα βρίσκει αυτήν τη διεύθυνση και θα την ορίζει ως Default Route. Ταυτόχρονα, η συγκεκριμένη συνάρτηση διορθώνει τα ονόματα των τύπων των συνδέσεων που μας επιστρέφει το SNMP request. Ουσιαστικά, η συνάρτηση αυτή κάνει τον πίνακα δρομολόγησης πιο ευανάγνωστο, οπότε την παραθέτουμε στη συνέχεια: function defroute ( $destip, $iproutetype ){ for ($i =0; $i <= sizeof ( $destip ); $i ++){ 53

54 if( $destip [$i ]== " " && $iproutetype [$i ]== indirect ) $iproutetype [$i ]=" DefRoute "; else if( $iproutetype [$i ]== direct ) $iproutetype [$i ]=" Connected "; else if( $iproutetype [$i ]== indirect ) $iproutetype [$i ]=" Indirect "; return $iproutetype ; Οπως βλέπουμε, η συνάρτηση παίρνει δύο ορίσματα. Αυτά είναι η διεύθυνση προορισμού ($destip) και ο τύπος της σύνδεσης ($iproutetype) τα οποία αποτελούν όσα χρειαζόμαστε για να καθορίσουμε τις διαδρομές μας. Σε πρώτη φάση, διαβάζουμε τον πίνακα των IP προορισμού προκειμένου να βρούμε τη μηδενική διεύθυνση. Επειτα, προχωρούμε στη διενέργεια ελέγχου για τη διεύθυνση αυτή. Αν εντοπίσουμε τη διεύθυνση, ακολουθεί ο έλεγχος του πίνακα των τύπων διευθύνσεων ώστε να είναι indirect. Βλέπουμε πως ο δείκτης $i μας δίνει την αντίστοιχη θέση και στους δύο πίνακες. Αν όντως βρεθεί το , τότε αλλάζουμε την τιμή του τύπου του σε DefRoute ώστε να δηλώσουμε τη διεύθυνση αυτή ως εξόρισμού διεύθυνση. Σε κάθε έλεγχο, για οποιαδήποτε διεύθυνση βρεθεί, αλλάζουμε απλώς το όνομα του τύπου, ώστε να γίνει πιο ευανάγνωστο. Για παράδειγμα, από direct σε Connected. Τέλος, επιστρέφουμε τον πίνακα με τις διορθωμένες του καταχωρίσεις. Η επόμενη συνάρτηση έχει να κάνει με τις εξερχόμενες διεπαφές. Τα request μας επιστρέφουν σε ακέραια μορφή τον αριθμό των διεπαφών ενώ εμείς θέλαμε το όνομα της κάθε διεπαφής. Ετσι, χρησιμοποιήσαμε τη συνάρτηση getifindex για αυτόν τον σκοπό. Η συνάρτηση αυτή, χρησιμοποιείται και από το ARP table για τον ίδιο ακριβώς λόγο και έτσι τη γενικέυσαμε στο αρχείο Funcs.php ώστε να είναι διαθέσιμη και στα δύο αρχεία. function getifindex ( $IfIndex, $host, $community ){ for ($i =0; $i < sizeof ( $IfIndex ); $i ++){ $IfIndex [$i] = snmpget (" $host "," $community ", " $IfIndex [$i]"); return $IfIndex ; Σε αυτήν τη συνάρτηση χρειαζόμαστε τρεις παραμέτρους. Αυτές είναι ο πίνακας με τους ακέραιους που δηλώνουν τη διεπαφή, η IP της συσκευής και το community name ώστε να τα χρησιμοποιήσουμε για να πάρουμε τα ονόματα των διεπαφών. Η λειτουργία είναι απλή. Για κάθε τιμή του πίνακα κάνουμε ένα ξεχωριστό SNMPget request για να επιστραφεί η περιγραφή της κάθε διεπαφής. Ετσι, αντικαθίσταται κάθε ακέραιος αριθμός της διεπαφής με το όνομά της και επιστρέφεται ο πίνακας. Interface section Ο πίνακας των διεπαφών (Interface) μας δίνει πληροφορίες που αφορούν τις διεπαφές της συγκεκριμένης συσκευής που θέλουμε. Οι πληροφορίες αυτές αφορούν την 54

55 ταχύτητα της διεπαφής, τον τύπο της, την MAC διεύθυνσής της και την κατάσταση στην οποία βρίσκεται. Από τον πίνακα που εμφανίζεται στην αρχή, παίρνουμε γενικές πληροφορίες που αφορούν τη συσκευή ως προς τις διεπαφές της. Τέτοιες πληροφορίες είναι για παράδειγμα, ο αριθμός των διεπαφών της συσκευής, ο αριθμός των ενεργών και των μη ενεργών διεπαφών. Ενα παράδειγμα μιας διεπαφής είναι η παρακάτω: Desrc iption Gigabit Ethernet 0/1 Type Alias Mtu Speed Admin Oper Last Status Status Changed ethernet swit2 Csmacd Gbps up up 17days 16hours MAC Address 00:0a:41:0b:4e:01 Αυτό μας δηλώνει την κατάσταση και δίνει τις πληροφορίες της συγκεκριμένης διεπαφής. Το μόνο πρόβλημα που αντιμετωπίσαμε εδώ, ήταν η ταχύτητα της διεπαφής. Η εμφάνιση της ταχύτητας της διεπαφής αρχικά ήταν σε δεκαδικό αριθμό σε bit ανά δευτερόλεπτο. Για να είναι πιο ευανάγνωστο προς τον χρήστη, δημιουργήσαμε μία συνάρτηση η οποία μετατρέπει τα bit ανά δευτερόλεπτο, σε Mbps ή σε Gbps, ανάλογα με την ταχύτητα της διεπαφής. Η συνάρτηση δίνεται παρακάτω: function ifspeedfix ( $ifspeed ){ for ($i =0; $i < count ( $ifspeed ); $i ++){ if ( $ifspeed [ $i ] >= && $ifspeed [ $i ] < ) $ifspeed [$i ]= $ifspeed [$i ]/ " Mbps "; elseif ( $ifspeed [ $i ] >= && $ifspeed [ $i ] < ) $ifspeed [$i ]= $ifspeed [$i ]/ " Gbps "; else $ifspeed [$i ]= null ; return $ifspeed ; Είναι εμφανές ότι στη συνάρτηση αυτή, δίνουμε ως παράμετρο τον πίνακα με τις ταχύτητες των διεπαφών, και γίνονται για κάθε μία τιμή οι υπολογισμοί των ταχυτήτων τους. Ετσι, αν έχουμε μία διεπαφή της οποίας η ταχύτητα βρίσκεται μεταξύ των και bit ανά δευτερόλεπτο, τότε αυτό που γίνεται είναι να διαιρέσουμε την ταχύτητα αυτή με το ώστε να μεταφράσουμε την ταχύτητα αυτή σε Mbps. Αντίστοιχα, ακολουθείται η ίδια διαδικασία για μεγαλύτερες ταχύτητες, δηλαδή για Gbps. Τέλος, αν δεν υπάρχει ταχύτητα στη διεπαφή, τότε παίρνει την τιμή null. Επίσης, χρησιμοποιούμε τη συνάρτηση fixmac() που περιγράψαμε στον πίνακα δρομολόγησης, για να διορθώσουμε την εμφάνιση της MAC διεύθυνσης. Traffic Στην καρτέλα Interface Information, υπάρχει ένα κουμπί το οποίο μας δείχνει την εισερχόμενη και εξερχόμενη κίνηση του κάθε interface της συσκευής που βρισκόμαστε. Η συγκεκριμένη σελίδα εμφανίζεται σε νέο παράθυρο και ανανεώνεται ανά πέντε δευτερόλεπτα. Ενα στιγμιότυπο του πίνακα δίνεται παρακάτω: 55

56 ID Desrciption Alias Traffic Down Traffic UP 1 GigabitEthernet0/1 sw-it Mbps Kbps 5 GigabitEthernet0/5 it-info bps 4.52 Kbps Προκειμένου να πάρουμε την κίνηση ενός οποιουδήποτε interface, θα πρέπει να έχουμε κάποιες συγκρίσιμες τιμές. Οι τιμές αυτές είναι ένας χρόνος και ο αριθμός των δεδομένων που έχουν σταλεί/ληφθεί τη συγκεκριμένη χρονική στιγμή. Αν πάρουμε μετά από κάποιο χρονικό διάστημα τις ίδιες πληροφορίες και αφαιρέσουμε το νέο χρόνο από τον παλιό και τα νέα δεδομένα από τα παλιά, θα έχουμε τη διαφορά που υπήρξε σε αυτό το χρονικό διάστημα. Επίσης, ξέρουμε ότι το πηλίκο των δεδομένων προς τον χρόνο μας δίνει τον αριθμό των δεδομένων ανα το χρόνο. Οπότε για να βρούμε την κίνηση που επιθυμούμε, η συνάρτηση που χρειαζόμαστε είναι η εξής: Data Per Time = DataNew DataOld /TimeNew TimeOld Οι πληροφορίες που μπορούμε να πάρουμε από τα interface, μας δίνουν τη δυνατότητα να κάνουμε αυτούς τους υπολογισμούς ώστε να καταφέρουμε να πάρουμε την κίνηση των interface. Χρησιμοποιήσαμε τον αριθμό των εισερχόμενων Οκτάδων(Bytes) για αυτόν τον σκοπό, καθώς και την τοπική ώρα του server ώστε να έχουμε το χρόνο που χρειαζόμαστε για να κάνουμε τις πράξεις. Ετσι, σε μια μεταβλητή t NEW έχουμε το χρόνο και στη μεταβλητή PackIn NEW έχουμε τον αριθμό των byte. Στα επόμενα πέντε δευτερόλεπτα, η σελίδα ανανεώνεται αυτόματα και οι μεταβλητές αυτές, αποθηκεύονται στο SESSION για να χρησιμοποιηθούν στην επόμενη μέτρηση και τέλος, γίνεται η λήψη των νέων τιμών. Ετσι, έχουμε τέσσερις μεταβλητές. $PackIn NEW $t NEW $ SESSION[$host][ iftraffic ][ Traffic][ t OLD ] $ SESSION[$host][ iftraffic ][ Traffic][ PackIn OLD ] Τώρα μπορούμε να κάνουμε τις πράξεις και να πάρουμε την πρώτη τιμή της κίνησης. Η ίδια διαδικασία, γίνεται για τον υπολογισμό της εισερχόμενης αλλά και εξερχόμενης κίνησης. Παρακάτω αναλύεται η διαδικασία που χρησιμοποιήθηκε καθώς και οι συναρτήσεις ώστε να έχουμε το επιθυμητό αποτέλεσμα. Για να πάρουμε τους χρόνους χρησιμοποιήσαμε τη συνάρτηση της PHP time() που επιστρέφει την ώρα του συστήματος σε δευτερόλεπτα. Για τη λήψη του εισερχόμενου αριθμού των byte χρησιμοποιήσαμε το OID και για τα εξερχόμενα το OID Χρησιμοποιείται η συνάρτηση Traffic(), η οποία κάνει την πράξη που είδαμε παραπάνω. Ο κώδικας είναι ο παρακάτω: function Traffic ( $timeold, $timenew, $bytesold, $bytesnew ){ $speed = array (); if ( isset ( $timenew ) && isset ( $bytesnew )) for ($i =0; $i < count ( $bytesold ); $i ++){ $speed [$i ]=0; $speed [$i ]= (( $bytesnew [$i]- $bytesold [$i ])/( $timenew - $timeold )); return $speed ; 56

57 Στη συνάρτηση αυτή, εφόσον υπάρχουν οι μεταβλητές νέου χρόνου και νέου αριθμού byte, για κάθε τιμή του πίνακα των byte ανά interface γίνεται η πράξη. Στο τέλος επιστρέφεται ο πίνακας με τις τιμές σε bytes per second (Bps). Το επόμενο βήμα είναι να υπολογιστεί ο αριθμός αυτός σε bps, Kbps και Mbps. Αυτό γίνεται με την παρακάτω συνάρτηση: function ifbps ( $bps ){ for ($i =0; $i < count ( $bps ); $i ++){ $bps [$i ]*=8; if( $bps [$i ] <1000){ $bps [$i ]= round ( $bps [$i], 2); $bps [$i ]= "<font color =# > $bps [$i] bps </ font >"; elseif ( $bps [$i ] < ){ $bps [$i ]/=1000; $bps [$i ]= round ( $bps [$i], 2); if( $bps [$i ] <=1000) $bps [$i ]= "<font color =# > $bps [$i] Kbps </ font >"; else { $bps [$i ]/= ; $bps [$i ]= round ( $bps [$i], 2); if( $bps [$i ] >5) $bps [$i ]="<b> $bps [$i] Mbps </b>"; else $bps [$i ]=" $bps [$i] Mbps "; return $bps ; Η συνάρτηση αυτή, υπολογίζει τις τιμές σε bits και κάνει τις διαιρέσεις ώστε να πάρουν οι τιμές την κατάλληλη μορφή ανάλογα με το μέγεθος που δίνεται και επίσης, «χρωματίζει» τις τιμές, ανάλογα με το εύρος που βρίσκονται ώστε να γίνονται αντιληπτές οι διαφορές από το χρήστη. Taxinìmhsh Σε κάποιες περιπτώσεις που έχουμε πίνακες δεδομένων, όπως είναι ο πίνακας ARP και ο πίνακας των Interface, παίρνουμε πολλά δεδομένα και τα εμφανίζουμε. Θεωρείται πρακτικό και λειτουργικό το να μπορούμε να ταξινομήσουμε αυτούς τους πίνακες, ώστε να μπορούμε να δούμε ξεκάθαρα κάποια πράγματα. Για παράδειγμα είναι πιο πρακτικό να δούμε ταξινομημένα τα πρωτόκολλα ενός πίνακα δρομολόγησης ώστε να φανεί ξεκάθαρα ποιά πρωτόκολλα χρησιμοποιούνται. Οπως επίσης θα ήταν πιο εύκολο να εντοπιστούν τα κλειστά/ανοικτά interface αν τα ταξινομούσαμε. Παρακάτω θα αναλυθεί πως πραγματοποιηθήκε η ταξινόμηση. Γνωρίζουμε ότι για την παρουσίαση των δεδομένων υπό μορφή πίνακα, όπως για παράδειγμα ο πίνακας ARP, βρίσκεται στην μορφή: 57

58 Interface Index Entry Type MAC Address IP Address GigabitEthernet0/10 dynamic 00:0e:38:38:9f:bf GigabitEthernet0/10 static 00:0a:41:0b:4e: GigabitEthernet0/12 static 00:0a:41:0b:4e: Σε μία συσκευή δικτύου, τις περισσότερες των περιπτώσεων, δεν υπάρχουν λίγες εγγραφές στον πίνακα όπως το παράδειγμα αλλά πάρα πολλές. Για να εμφανιστεί ο πίνακας ARP, χρειάστηκαν τέσσερις διαφορετικοί πίνακες. Προκειμένου να γίνει ταξινόμηση σε τέτοιου είδους πίνακες, χρειάζεται να χρησιμοποιηθεί μία συνάρτηση της PHP η array multysort() η οποία χρησιμοποιείται για την ταξινόμηση πολλών πινάκων ταυτόχρονα. Η διαδικασία που χρησιμοποιήθηκε, ήταν να δώσουμε ως παραμέτρους στην συνάρτηση τους πίνακες, με πρώτο αυτόν τον οποίο θέλουμε να γίνει η ταξινόμηση και στην συνέχεια τους υπόλοιπους πίνακες. Επίσης δίνεται ως παράμετρος ο τύπος της ταξινόμησης που θέλουμε και τέλος η σειρά της ταξινόμησης. Ετσι για τον πίνακα ARP η συνάρτηση array multysort() θα έχει τη μορφή: array_multisort ( $arptable2 [ ifname ], SORT_ ASC, SORT_ STRING, $arptable2 [ ipnettomediatype ], $arptable2 [ ipnettomediaphysaddress ], $arptable2 [ ipnettomedianetaddress ]); Με αυτόν τον τρόπο, ταξινομήθηκαν όλοι οι πίνακες με βάση τον πρώτο πίνακα που δηλώθηκε ως String, κατά αύξουσα σειρά και αντιστοιχήθηκαν οι τιμές των άλλων πινάκων. Για να γίνει η ταξινόμηση και με βάση κάποιον άλλον πίνακα, αυτό που έπρεπε να γίνει, ήταν το να γίνει αλλαγή των παραμέτρων στην συνάρτηση. Ετσι αν για παράδειγμα ζητήσουμε ταξινόμηση με βάση την στήλη με τις MAC διευθύνσεις, τότε θα μπει ως πρώτη παράμετρος η στήλη αυτή και μετά με την σειρά όλες οι άλλες. Προκειμένου να γίνει ταξινόμηση για όλες τις περιπτώσεις, κατά αύξουσα ή φθίνουσα σειρά, χρησιμοποιούνται τόσες περιπτώσεις όσοι και οι πίνακες επί δύο. Δηλαδή για τέσσερις πίνακες έχουμε οκτώ διαφορετικές περιπτώσεις. Λόγω του ότι έχουμε περιπτώσεις, χρησιμοποιήθηκε μια switch ώστε να αλλάζουμε περιπτώσεις. Η μεταβλητή που χρησιμοποιεί η switch είναι η $ss. Αυτή η μεταβλητή δίνεται από την HTML μόλις πατηθεί το κουμπί (βελάκι) στην σελίδα. Αμέσως μετά από το πάτημα αυτό, η μεταβλητή αυτή παίρνει την κατάλληλη τιμή και τίθεται στην διαθεσή μας απο το link του browser. dsiaper/myapp/index.php?ip= &cn=public&ch=2&ss=3 Ετσι όπως έχει εξηγηθεί προηγουμένως στο κεφάλαιο για την IP και στο κεφάλαιο για την ροή του προγράμματος, γίνεται η λήψη της μεταβλητής αυτής και μπαίνει ως παράμετρος στην συνάρτηση sindex() η οποία πραγματοποιεί έχει όλα τα κατάλληλα στοιχεία πλέον, ώστε να γίνει η ταξινόμηση. Οι παράμετροι αυτοί είναι η μεταβλητή $ss και ο κάθε πίνακας με τους υποπίνακές του που αποτελούν κάθε φορά την οθόνη που βλέπουμε. $ SESSION[$host][ arptable ]=sindex($ss, $ SESSION[$host][ arptable ]); 58

59 8 Dom istoselðdac Στο παρακάτω κεφάλαιο θα γίνει μια μικρή περιγραφή της δομής της ιστοσελίδας μας, καθώς θα δούμε ποια αρχεία χρησιμοποιούνται προκειμένου να είναι διαθέσιμη η ιστοσελίδα. Επίσης θα εξηγηθεί το πώς μπορούμε να εγκαταστήσουμε την ιστοσελίδα μας σε ένα http server ενός δικτύου ώστε να μπορούμε να το χρησιμοποιήσουμε στο δίκτυο που θέλουμε. Ξεκινώντας δίνουμε έναν πίνακα με τα αρχεία που απαιτούνται προκειμένου να λειτουργήσει η ιστοσελίδα. public html Smarty ->Αρχεία που αφορούν το Smarty myapp ->index.php ->files -> ciscodevices.php -> incsmarty.php -> ip.php -> menu.php -> tpl ->about.tpl ->ARP.tpl ->cisco.tpl ->cisconetwork.tpl ->hrdevtable.tpl ->hrstoretable.tpl ->hrswruntable.tpl ->hrsystable.tpl ->iftraffic.tpl ->iftable.tpl ->index.tpl ->ip.tpl ->ref.tpl ->routtable.tpl ->systable.tpl ->TCP IPTable.tpl -> SNMP ->about.php ->ARP.php ->cisco.php ->cisconetwork.php ->Funch.php ->hrdevtable.php ->hrstoretable.php ->hrswruntable.php ->iftraffic.php ->iftable.php ->routtable.php ->systable.php ->TCP IPTable.php 59

60 -> lib ->CSS ->layersmenu-demo.css ->layerstreemenu.css ->menu ->Τα αρχεία του μενού ->phpsnmp ->Τα αρχεία του phpsnmp ->smarty -> cache -> configs -> templates -> templates c ->icons Με έντονα γράμματα είναι οι φάκελοι και τα υπόλοιπα είναι τα αρχεία με τις επεκτάσεις τους. Η πρόσβαση στην ιστοσελίδα γίνεται από τη διεύθυνση όπου localhost η διεύθυνση του server που φιλοξενείται η ιστοσελίδα. Στην προκειμένη περίπτωση είναι ο server του ΑΤΕΙΘ, ο οποίος είναι ο aetos.it.teithe.gr, οπότε το link είναι το dsiaper/myapp/index.php. Για τη λειτουργία της ιστοσελίδας χρειάζεται να έχουμε: Το πακέτο Smarty, το πακέτο NET-SNMP εγκατεστημένο στον server και το πακέτο phpsnmp. Τα πακέτα Smarty και phpsnmp, υπάρχουν μέσα στην ιστοσελίδα μας, οπότε δεν είναι απαραίτητο να προϋπάρχουν. Προκειμένου να είναι διαθέσιμη στον server πρέπει: 1. Από το CD να γίνει αντιγραφή του φακέλου myapp, στον φάκελο του server όπου έχει οριστεί να φιλοξενεί τις ιστοσελίδες. Για παράδειγμα, αν αυτός ο φάκελος είναι ο /home/mysites/ τότε πρέπει να γίνει η αντιγραφή μέσα στον φάκελο mysites. 2. Αλλαγή της διαδρομής για τη συμπερίληψη των αρχείων που χρησιμοποιεί η ιστοσελίδα, στην τοπική διεύθυνση φιλοξενίας των ιστοσελίδων. Αυτό γίνεται μέσα από το αρχείο incsmarty.php το οποίο βρίσκεται στο φάκελο myapp/files/incsmarty.php. 3. Ανοίγουμε το αρχείο με έναν Text Editor και αλλάγή της μεταβλητής $localhost από $localhost= new server path σε $localhost= local server path. Οπου local server path, ο φάκελος που φιλοξενούνται οι ιστοσελίδες, για παράδειγμα /home/mysites. Για την υλοποίηση της πτυχιακής στο δικό μας χώρο, στον server aetos.it.teithe.gr, χρησιμοποιούμε τη διαδρομή $localhost= /home/student/x0203/dsiaper/public html 60

61 9 Manual Αρχικά, ανοίγουμε τον browser και μπαίνουμε στη σελίδα στην οποία βρίσκεται η ι- στοσελίδα και είναι ο παρακάτω σύνδεσμος dsiaper/myapp/index.php. Αυτο που εμφανίζεται είναι αρχικά ο τίτλος της σελίδας. Αριστερά βρίσκεται το μενυ πλοήγησης, ένα παράθυρο πληροφοριών και ένας πίνακας με τις IP που έχουμε επισκεφθεί. Στο κέντρο της οθόνης μας ζητούνται η ip address και το community name. Αφού πληκτρολογίσουμε μια έγκυρη IP και το community name της συσκευής που θέλουμε να πάρουμε πληροφορίες στη συνέχεια πατάμε το κουμπί submit. 9.1 System Information Η αρχική οθόνη που βλέπουμε αφου πατήσουμε το κουμπί submit είναι το system information, το οποίο μας δίνει πληροφορίες για τη συσκευή της οποίας την IP δώσαμε προηγουμένος. Οι πληροφορίες που παίρνουμε είναι : 61

62 1. Host ip : Η IP της συσκευής. 2. Name : Το όνομα της συσκευής. Αυτό δίνεται από το διαχειριστή. 3. Description : Μια σύντομη περιγραφή της συσκευής όπως την επιστρέφει το SNMP. 4. Device Location : Τοποθεσία της συσκευής (καθορίζεται από το διαχειριστή). 5. Contact: Τρόπος επικοινωνίας με το διαχειριστή (καθορίζεται από το διαχειριστή). 6. Operating Time: Ο χρόνος λειτουργίας της συσκευής. Η πρώτη οθόνη είναι ίδια με το General information του menu. 62

63 9.2 ARP Table leitourgeð se 2 epðpedo (TCP/IP). Το ARP Table περιέχει τις αντιστοιχίσεις των Mac address με τις IP addresses. 1. Interface Index : Αναγνωριστικό του interface στο οποίο αναφέρεται η εγγραφή στο ARP Table. Η τιμή αυτή καθορίζεται από το MIB. 2. Entry Type : dynamic: καθορίζεται από το πρωτόκολλο. Static: καθορίζεται από το διαχειριστή. 3. MAC Address : Η MAC διεύθυνση της IP στην οποία αντιστοιχεί. 4. IP Address : Η αντίστοιχη IP διεύθυνση. 63

64 9.3 Routing Table Το Routing Table περιέχει πληροφορίες δρομολόγησης. Δηλαδή το που και το πώς θα σταλθούν τα πακέτα. 1. Route Type : Τύπος διαδρομής 2. Destination IP : Διεύθυνση προορισμού και Subnnet mask. 3. NextHop Address : Ο επόμενος δρομολογητής. 4. Outgoing interface : Εξερχόμενο interface. 5. Metric : Μονάδα μέτρησης της απόστασης ανάλογα με το πρωτόκολλο που χρησιμοποιεί. 6. Protocol : Το πρωτόκολλο δρομολόγησης που χρησιμοποιείται. 9.4 Interface Το Interface General Information μας δίνει πληροφορίες για το σύνολο των interface της κάθε συσκευής. 1. Number of interfaces : ο αριθμός των interfaces συνολικά. 2. Number of admin Status UP: τα ενεργά interface σε λογικό επίπεδο. 3. Number of admin Status DOWN: τα ανενεργά interface σε λογικό επίπεδο. 64

65 4. Number of Operation Status UP: τα ενεργά σε φυσικό επίπεδο. 5. Number of Operation Status Down: τα ανενεργά σε φυσικό επίπεδο. Εδώ βλέπουμε για κάθε interface τις πληροφορίες ξεχωριστά. 1. ID : Το αναγνωριστικό του interface όπως καθορίζεται από το MIB. 2. Description : Η περιγραφή του interface. 3. Type : Ο τύπος του interface. 4. Alias : ψευδώνυμο για το interface (καθορίζεται από το διαχειριστή). 5. MTU : Μέγιστο μέγεθος πλαισίου που υποστηρίζει το interface. 6. Speed : Ταχύτητα του interface. 7. AdminStatus : κατάσταση interface σε λογικό επίπεδο. 8. OperStatus : κατάσταση interface σε φυσικό επίπεδο. 9. LastChanged : Τελευταία αλλαγή που επήλθε στο interface. 10. MACAddress : Η Mac διεύθυνση του interface. 65

66 Με το κουμπί Traffic ανοίγει ένα νέο παράθυρο το interface bitrate information. 9.5 Interface Traffic Information 1. ID : όπως και στα interface. 2. Description : όπως και στα interface. 66

67 3. Type : όπως και στα interface. 4. Alias : όπως και στα interface. 5. Traffic down*: ταχύτητα με την οποία δέχεται τα δεδομένα. 6. Traffic up*: ταχύτητα με την οποία στέλνει τα δεδομένα. *Η αρχική τιμή είναι μηδενική οπότε και δεν εμφανίζει πληροφορίες. Η σελίδα ανανεώνεται ανά 5 δευτερόλεπτα ώστε να έχουμε σαφή εικόνα για την ταχύτητα. 9.6 TCP/IP Στην επιλογή αυτήν παίρνουμε πληροφορίες για τα πρωτόκολλα της πλατφόρμας TCP/IP. Αυτά αφορούν τα IP, TCP, UDP, ICMP και SNMP IP 1. IPForwarding : Forwarding/ Not Forwarding. Δηλώνει το αν η συσκευή δρομολογεί πακέτα IP ή όχι. 2. IpDefaultTTL : Επιστρέφει την τιμή την οποία δίνει εξορισμού στο πεδίο του IP πακέτου TTL(Time To Live) σε περίπτωση που δεν έχει δωθεί τιμή από το πρωτόκολλο ανώτερου επιπέδου. 3. IpInReceives : Ο αριθμός των εισερχόμενων πακέτων από όλα τα interface της συσκευής, συμπεριλαμβανομένων των εσφαλμένων πακέτων. 4. ipinhdrerrors : Τα πακέτα που απορρίφθηκαν λόγω λανθασμένων πεδίων ελέγχων στην κεφαλίδα του πακέτου IP. 5. ipinaddrerrors : Τα πακέτα που απορρίφθηκαν λόγω IP διεύθυνσης προορισμού διαφορετικής από την συσκευή. Συμπεριλαμβάνονται μη έγκυρες IP όπως και μη συμβατές κλάσεις IP όπως class E. 67

68 6. ipforwdatagrams : Το πλήθος των πακέτων όπου δεν έχουν ως τελικό προορισμό την συγκεκριμένη συσκευή αλλά η συσκευή τα προώθησε προς τον τελικό του προορισμό. 7. ipinunknownprotos : Το πλήθος των πακέτων που απορρίφθηκαν λόγω πρωτοκόλλου ανωτέρου επιπέδου που δεν υποστηρίζεται από την συσκευή. 8. ipindiscards : Το πλήθος των πακέτων IP που απορρίφθηκαν. 9. ipindelivers : Το πλήθος των IP πακέτων που παραδώθηκαν επιτυχώς στα πρωτόκολλα ανώτερου επιπέδου, συμπεριλαμβανομένων και των πακέτων ICMP. 10. ipindelivers : Το πλήθος των IP πακέτων που δόθηκαν από τα πρωτόκολλα ανωτέρων επιπέδων προς αποστολή. Συμπεριλαμβάνονται και τα πακέτα ICMP. 11. ipoutdiscards : Το πλήθος των IP πακέτων που δόθηκαν από τα πρωτόκολλα ανωτέρων επιπέδων προς αποστολή και απορρίφθηκαν. 12. ipoutnoroutes : Το πλήθος των IP πακέτων που δόθηκαν από τα πρωτόκολλα ανωτέρων επιπέδων προς αποστολή και απορρίφθηκαν, λόγω μη εύρεσης κάποιας διαδρομής. 13. ipreasmtimeout : Ο αριθμός των δευτερολέπτων αναμονής των κατατετμημένων πακέτων πριν την απόρριψή τους. 14. ipreasmreqds : Το πλήθος των IP πακέτων που παραλήφθηκαν και α- ναμένετε η επαναδημιουργία τους. 15. ipreasmoks : Το πλήθος των IP πακέτων που αναδημιουργήθηκαν επιτυχώς. 16. ipreasmfails : Το πλήθος των IP πακέτων που δεν αναδημιουργήθηκαν επιτυχώς. 17. ipfragoks : Το πλήθος των IP πακέτων που κατατμήθηκαν επιτυχώς. 18. ipfragfails : Το πλήθος των IP πακέτων που δεν κατατμήθηκαν επιτυχώς. 19. ipfragcreates : Ο αριθμός των κατατμημένων πακέτων που δημιουργήθηκαν επιτυχώς. 68

69 9.6.2 ICMP 1. icmpinmsgs : Ο συνολικός αριθμός των ICMP μηνυμάτων που ελήφθησαν. 2. icmpinerrors : Ο συνολικός αριθμός των εσφαλμένων ICMP μηνυμάτων που ελήφθησαν. 3. icmpindestunreachs : Ο αριθμός των μηνυμάτων ICMP Destination Host Unreachable που ελήφθησαν. 4. icmpintimeexcds : Ο αριθμός των μηνυμάτων ICMP Time Exceeded που ελήφθησαν. 5. icmpinparmprobs : Ο αριθμός των μηνυμάτων ICMP Parameter Problem που ελήφθησαν. 6. icmpinsrcquenchs : Ο αριθμός των μηνυμάτων ICMP Source Quench που ελήφθησαν. 7. icmpinredirects : Ο αριθμός των μηνυμάτων ICMP Redirect που ελήφθησαν. 8. icmpinechos : Ο αριθμός των μηνυμάτων ICMP Echo request που ελήφθησαν. 9. icmpinechoreps : Ο αριθμός των μηνυμάτων ICMP Echo reply που ελήφθησαν. 10. icmpintimestamps : Ο αριθμός των μηνυμάτων ICMP Timestamp request που ελήφθησαν. 11. icmpintimestampreps : Ο αριθμός των μηνυμάτων ICMP Timestamp reply που ελήφθησαν. 12. icmpinaddrmasks : Ο αριθμός των μηνυμάτων ICMP Address Mask request που ελήφθησαν. 13. icmpinaddrmaskreps : Ο αριθμός των μηνυμάτων ICMP Address Mask reply που ελήφθησαν. 14. icmpoutmsgs : Ο συνολικός αριθμός των ICMP μηνυμάτων που αποστάλθηκαν. 15. icmpouterrors : Ο συνολικός αριθμός ICMP μηνυμάτων που δεν αποστάλθηκαν λόγω εσωτερικών προβλημάτων του πρωτοκόλλου. 69

70 16. icmpoutdestunreachs : Ο αριθμός των μηνυμάτων ICMP Destination Host Unreachable που αποστάλθηκαν. 17. icmpouttimeexcds : Ο αριθμός των μηνυμάτων ICMP Time Exceeded που αποστάλθηκαν. 18. icmpoutparmprobs : Ο αριθμός των μηνυμάτων ICMP Parameter Problems που αποστάλθηκαν. 19. icmpoutsrcquenchs : Ο αριθμός των μηνυμάτων ICMP Source Quench που αποστάλθηκαν. 20. icmpoutredirects : Ο αριθμός των μηνυμάτων ICMP Redirect που α- ποστάλθηκαν. 21. icmpoutechos : Ο αριθμός των μηνυμάτων ICMP Echo request που α- ποστάλθηκαν. 22. icmpoutechoreps : Ο αριθμός των μηνυμάτων ICMP Echo reply που αποστάλθηκαν. 23. icmpouttimestamps : Ο αριθμός των μηνυμάτων ICMP Timestamp request που αποστάλθηκαν. 24. icmpouttimestampreps : Ο αριθμός των μηνυμάτων ICMP Timestamp reply που αποστάλθηκαν. 25. icmpoutaddrmasks : Ο αριθμός των μηνυμάτων ICMP Address Masks request που αποστάλθηκαν. 26. icmpoutaddrmaskreps : Ο αριθμός των μηνυμάτων ICMP Address masks reply που αποστάλθηκαν TCP Active Connections Στον πίνακα αυτόν παρουσιάζονται οι ενεργές TCP σύνοδοι. 70

71 1. Local Address : Η τοπική IP διεύθυνση για την TCP σύνοδο 2. Local Port : Η τοπική πόρτα που χρησιμοποιείται για την TCP σύνοδο 3. Remote Address : Η απομακρυσμένη IP διεύθυνση που χρησιμοποιείται για την σύνοδο. 4. Remote Port : Η απομακρυσμένη πόρτα που χρησιμοποιείται για την TCP σύνοδο 5. Connection State : Η κατάσταση της συγκεκριμένης συνόδου. 6. tcpinerrs : Το πλήθος των εισερχόμενων τμημάτων που ελήφθησαν με σφάλματα. 7. tcpoutrsts : Ο αριθμός των εξερχόμενων τμημάτων που εστάλεισαν με το bit RST στην κεφαλίδα TCP ενεργό TCP Algorithm Στον πίνακα αυτόν εμφανίζονται πληροφορίες που αφορούν τον αλγόριθμο του TCP. 71

72 1. tcprtoalgorithm : Ο αλγόριθμος που χρησιμοποιείται για να καθοριστεί ο χρόνος επαναποστολής των τμημάτων. 2. tcprtomin : Η μικρότερη επιτρεπτή τιμή για τον χρόνο επαναποστολής των τμημάτων ανάλογα με τον αλγόριθμο που χρησιμοποιείται. 3. tcprtomax : Η μεγαλύτερη επιτρεπτή τιμή για τον χρόνο επαναποστολής των τμημάτων ανάλογα με τον αλγόριθμο που χρησιμοποιείται. 4. tcpmaxconn : Το μεγιστο επιτρεπτό όριο των ενεργών συνόδων που ε- πιτρέπεται σε αυτόν τον σταθμό. Αν ο αριθμός αυτός υπολογίζεται δυναμικά, τότε η τιμή αυτή θα είναι tcpactiveopens : Το πλήθος των ενεργών ανοιγμάτων που έχει κάνει αυτός ο σταθμός. Ορίζεται ως το πλήθος των τμημάτων που έχει στείλει με ενεργό το bit SYN-SENT από την κατασταση CLOSED. 6. tcppassiveopens : Το πλήθος των παθητικών ανοιγμάτων που έχει κάνει αυτός ο σταθμός. Ορίζεται ως το πλήθος των τμημάτων που έχει στείλει με ενεργό το bit SYN-RCVD από την κατασταση LISTEN. 7. tcpattemptfails : Ο αριθμός που δηλώνει το πόσες φορές έχει αλλάξει την κατάσταση σε CLOSED από την κατάσταση SYN-SENT ή από την κατάσταση SYN-RCVD. 8. tcpestabresets : Ο αριθμός των αλλαγών κατάστασης από ESTABLISHED ή CLOSED-WAIT σε CLOSED. 9. tcpcurrestab : Ο αριθμός των συνόδων που βρίσκονται σε κατάσταση ES- TASBLISHED ή CLOSED-WAIT την συγκεκριμένη χρονική στιγμή. 10. tcpinsegs : Το πλήθος των εισερχόμενων τμημάτων που ελήφθησαν, ακόμα και αυτά που ελήφθησαν με σφάλμα. 11. tcpoutsegs : Το πλήθος των εξερχόμενων τμημάτων. 12. tcpretranssegs : Το πλήθος των τμημάτων που έχουν αναμεταδοθεί. 72

73 9.6.5 UDP Ο πίνακας αυτός εμφανίζει πληροφορίες για το πρωτόκολλο UDP. UDP Information 1. udpindatagrams : Ο αριθμός των UPD πακέτων που έχουν ληφθεί. 2. udpoutdatagrams : Ο αριθμός των UPD πακέτων που έχουν αποσταλεί. 3. udpnoports : Το πλήθος των UDP πακέτων που έχουν παραληφθεί και δεν υπήρχε κάποια εφαρμογή στην θύρα που έχει γίνει η παράδοσή τους. 4. udpinerrors : Το πλήθος των UDP πακέτων που δεν έχουν παραληφθεί σωστά για άλλους λόγους από την έλλειψη κατάλληλης εφαρμογής. UDP Table 1. udplocaladdress : Η τοπική IP διεύθυνση αποδοχής UDP πακέτων. 2. udplocalport : Η τοπική θύρα αποδοχής UDP πακέτων. 73

74 SNMP 1. snmpinpkts : Το πλήθος των εισερχόμενων SNMP πακέτων. 2. snmpinbadversions : Το πλήθος των εισερχόμενων SNMP μηνυμάτων που παραλήφθηκαν με έκδοση πρωτοκόλλου που δεν υποστιρίζεται από την συγκεκριμένη συσκευή. 3. snmpinbadcommunitynames : Το πλήθος των εισερχόμενων SNMP μηνυμάτων που παραλήφθηκαν με λάθος community name. 4. snmpinbadcommunityuses : Το πλήθος των εισερχόμενων SNMP μηνυμάτων που παραλήφθηκαν και το community name δεν επιτρέπει να εκτελεστεί η λειτουργία που ζητείται. 5. snmpintoobigs : Το πλήθος των εισερχόμενων SNMP πακέτων τα οποία επέστρεψαν μήνυμα σφάλματος toobig s 6. snmpinnosuchnames : Το πλήθος των εισερχόμενων SNMP πακέτων τα οποία επέστρεψαν μήνυμα σφάλματος NoSuchName. 7. snmpinbadvalues : Το πλήθος των εισερχόμενων SNMP πακέτων τα οποία επέστρεψαν μήνυμα σφάλματος badvalues. 8. snmpinreadonlys : Το πλήθος των εισερχόμενων SNMP πακέτων τα οποία επέστρεψαν μήνυμα σφάλματος readonly. Το αποτέλεσμα αυτό οδηγεί σε συμπεράσματα λάθους υλοποίησης του πρωτοκόλλου στην συσκευή. 9. snmpingenerrs : Το πλήθος των εισερχόμενων SNMP πακέτων τα οποία επέστρεψαν μήνυμα σφάλματος generr. 10. snmpintotalreqvars : Το πλήθος των πακέτων SNMP που παραλήφθηκαν σωστά ως αποτέλεσμα των απεσταλμένων SNMPget request ή SNMPget- Next request. 74

75 11. snmpintotalsetvars : Το πλήθος των MIB αντικειμένων που άλλαξαν, ως αποτέλεσμα των SNMPset requests. 12. snmpingetrequests : Το πλήθος των εισερχόμενων SNMPget requests που παρελήφθησαν και επεξεργάστηκαν από την συσκευή. 13. snmpingetnexts : Το πλήθος των εισερχόμενων SNMPgetNext requests που παρελήφθησαν και επεξεργάστηκαν από την συσκευή. 14. snmpinsetrequests : Το πλήθος των εισερχόμενων SNMPset requests που παρελήφθησαν και επεξεργάστηκαν από την συσκευή. 15. snmpingetresponses : Το πλήθος των εισερχόμενων SNMPget response που παρελήφθησαν και επεξεργάστηκαν από την συσκευή. 16. snmpintraps : Το πλήθος των εισερχόμενων SNMPtrap που παρελήφθησαν και επεξεργάστηκαν από την συσκευή. 17. snmpoutpkts : Το πλήθος των εξερχόμενων SNMP πακέτων. 18. snmpouttoobigs : Το πλήθος των εξερχόμενων SNMP πακέτων τα οποία στέλνονται με μήνυμα σφάλματος toobig. 19. snmpoutnosuchnames : Το πλήθος των εξερχόμενων SNMP πακέτων τα οποία στέλνονται με μήνυμα σφάλματος nosuchname. 20. snmpoutbadvalues : Το πλήθος των εξερχόμενων SNMP πακέτων τα ο- ποία στέλνονται με μήνυμα σφάλματος badvalues. 21. snmpoutgenerrs : Το πλήθος των εξερχόμενων SNMP πακέτων τα οποία στέλνονται με μήνυμα σφάλματος generr. 22. snmpoutgetrequests : Το πλήθος των εξερχόμενων SNMPget requests που δημιουργήθηκαν και εστάλησαν από την συσκευή. 23. snmpoutgetnexts : Το πλήθος των εξερχόμενων SNMPgetNext requests που δημιουργήθηκαν και εστάλησαν από την συσκευή. 24. snmpoutsetrequests : Το πλήθος των εξερχόμενων SNMPset requests που δημιουργήθηκαν και εστάλησαν από την συσκευή. 25. snmpoutgetresponses : Το πλήθος των εξερχόμενων SNMPget response που δημιουργήθηκαν και εστάλησαν από την συσκευή. 26. snmpouttraps : Το πλήθος των εξερχόμενων SNMPtrap που δημιουργήθηκαν και εστάλησαν από την συσκευή. 9.7 Host Resources Μας δίνει πληροφορίες για την τερματική συσκευή της οποίας έχουμε δώσει την IP Address. 75

76 9.7.1 Host Resources System Πληροφορίες σχετικά με το σύστημα. 1. System Time: Η ώρα του συστήματος 2. System Date : Η ημερομηνία του συστήματος 3. IOS Load Device : Ακέραιος αριθμός που δηλώνει την συσκευή από την οποία ζητείται να φορτωθεί το ΛΣ 4. IOS Load Parameters :Οι παράμετροι που θα χρησιμοποιηθούν κατά την φόρτωση του ΛΣ. 76

77 5. Number Of Users : Ο αριθμός των χρηστών 6. Processes :Ο αριθμός των διεργασιών που τρέχουν στο σύστημα την συγκεκριμένη χρονική στιγμή 7. Max Processes : Ο αριθμός των μέγιστων διεργασιών για το συγκεκριμένο σύστημα. Εξορισμού Host Resources Device Στον πίνακα αυτόν μας δίνονται πληροφορίες σχετικά με τις συσκευές του συστήματος. 1. Device Index : Το αναγνωριστικό της συσκευής. 2. Type Of Device : Ο τύπος της συσκευής. 3. Description : Περιγραφή της συσκευής. 4. Status : Κατάσταση της συσκευής. 5. Errors : Ο αριθμός των σφαλμάτων της συγκεκριμένης συσκευής Storage Information Στον πίνακα αυτόν, μας δίνονται πληροφορίες σχετικά με τις μνήμες και με τα συστήματα αρχείων της τερματικής συσκευής. 77

78 1. Index : Το αναγνωριστικό της συσκευής. 2. Description : Περιγραφή του τύπου της συσκευής και/ή το όνομα του. 3. Used space : χώρος που χρησιμοποιείται. 4. Size : Συνολικό μέγεθος Running Software Information Εμφανίζει το τρέχον λογισμικό του συστήματος. 78

79 1. Index : Αναγνωριστικό του λογισμικού. 2. Software Name : Η ονομασία του λογισμικού 3. Software Run Path : Η τοποθεσία από την οποία φορτώθηκε το λογισμικό 4. Parameters : Οι παράμετροι που δόθηκαν κατά την φόρτωση του λογισμικού. 5. Software Type : Ο τύπος του λογισμικού. 6. Run Status : Η κατάσταση του λογισμικού. 9.8 CISCO Σε αυτόν τον πίνακα εμφανίζονται πληροφορίες σχετικά με το πρωτόκολλο CDP (Cisco Discovery Protocol). Οι πληροφορίες αυτές αναφέρονται στις άμεσα συνδεδεμένες συσκευές, από την συσκευή της οποίας δώσαμε την IP. Οι πληροφορίες είναι διαθέσιμες για CISCO συσκευές ή και για συσκευές που υποστηρίζουν το πρωτόκολλο CDP. 79

80 1. Address : Η IP διεύθυνση της άμεσα συνδεδεμένης συσκευής. 2. DeviceId : Το όνομα της συσκευής όπως καθορίστηκε από τον διαχειριστή. 3. DevPort : Το Interface της άμεσα συνδεδεμένης συσκευής που είναι σε επικοινωνία η συσκευή μας. 4. Platform : Ο τύπος της συσκευής. 5. IOS Version : Η έκδοση του Λειτουργικού Συστήματος της συσκευής CDP network Σε αυτόν τον πίνακα παίρνουμε πληροφορίες για ολόκληρο το CDP δίκτυο της συσκευής που δώσαμε την IP. 80

81 1. Device IP : Οι διευθύνσεις IP των συσκευών του δικτύου 2. System Name : Τα ονόματα των συσκευών όπως καθορίστικαν από τον διαχειριστή. 3. Description : Ο τύπος των συσκευών 4. System Operation Time : Η ώρα λειτουργίας των συσκευών 5. IOS Version : Η έκδοση των λειτουργικών συστημάτων των συσκευών. 6. Interfaces : Ο αριθμός των interfaces της κάθε συσκευής του δικτύου. 81

82 10 Sumperˆsmata Μέσω του CDP Network πήραμε πληροφορίες για ολόκληρο το δίκτυο του ΤΕΙ. Δίνοντας μια οποιαδήποτε IP του ΤΕΙ και επιλέγοντας απο το μενού το CDP Network μπορούμε να βρούμε όλες τις συμβατές με CDP συσκευές του ΤΕΙ. Ετσι μπορούμε να βγάλουμε συμπεράσματα σχετικά με το δίκτυο. Τρέξαμε την εφαρμογή κάποια τυχαία χρονική στιγμή και οι μετρήσεις έδειξαν τα παρακάτω: Την Δευτέρα στις 8 Μαρτίου το απόγευμα βρέθηκαν 57 δικτυακές συσκευές σε λειτουργία οι οποίες υποστηρίζουν πρωτόκολλο SNMP. Συγκεκριμένα όλες οι συσκευές φαίνονται στον παρακάτω πίνακα. Συσκευές Πλήθος cat catalyst2924xlv 2 catalyst295012g 4 catalyst catalyst295024g 9 catalyst295024sx 2 catalyst catalyst296048tt 8 catalyst355012g 2 catalyst ciscoairap Συσκευές Πλήθος catalyst2960g8tc 1 catalyst catalyst297024ts 1 catalyst6kmsfc2 1 cisco cisco3662ac 1 ciscoairap ciscoairap ciscoairap catalyst295048g 1 catalyst2912xl 1 82

83 Την ίδια χρονική στιγμή αναλύθηκαν και οι πληροφορίες σχετικά με το IOS Version των συσκευών αυτών. Στο παρακάτω διάγραμμα φαίνεται οτι οι περισσότερες συσκευές χρησιμοποιούν τα 12.1(14)ΕΑ1, 12.2(25)SEE2 και 12.2(44)SE6 IOS Version. Βέβαια όπως φαίνεται και στον παρακάτω πίνακα υπάρχουν αρκετές συσκευές οι οποίες χρησιμοποιούν άλλα IOS Version. Παρακάτω δίνεται αναλυτικά ο πίνακας των IOS Version όλων αυτών των συσκεών. IOS Version Πλήθος 12.0(5)WC (14)EA (22)EA (22)EA4a (22)EA (25)SEE (35)SE (44)SE (10b)JA (27) (19)EA1c 1 IOS Version Πλήθος 12.1(22)EA (22)EA (26)E (9)EA (25)SG (31) (44)SE (50)SE (50)SG (4)JA (8)JA 1 83

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Διαχείριςη και Αςφάλεια Δικτύων. Το Πρωτόκολλο SNMP

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Διαχείριςη και Αςφάλεια Δικτύων. Το Πρωτόκολλο SNMP Το Πρωτόκολλο SNMP Βάςη Πληροφοριών Διαχείριςησ Διαχειριςτήσ και διαχειριζόμενοσ Διαχειριζόμενο Σύςτημα Πράκτορασ UDP IP Δίκτυο Λειτουργίεσ Διαχείριςησ UDP IP Δίκτυο Βάςη Δεδομένων Διαχείριςησ Σταθμόσ

Διαβάστε περισσότερα

Διαχείριση Δικτύων με τη χρήση SNMP (5 η άσκηση)

Διαχείριση Δικτύων με τη χρήση SNMP (5 η άσκηση) ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ - ΕΜΠ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης & Βελτίστου Σχεδιασμού Δικτύων Τηλεματικής

Διαβάστε περισσότερα

Διαχείριση Δικτύων με τη χρήση SNMP (5η άσκηση) Διαχείριση Δικτύων - Ευφυή Δίκτυα, 9 ο Εξάμηνο,

Διαχείριση Δικτύων με τη χρήση SNMP (5η άσκηση) Διαχείριση Δικτύων - Ευφυή Δίκτυα, 9 ο Εξάμηνο, ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ - ΕΜΠ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης & Βελτίστου Σχεδιασμού Δικτύων Τηλεματικής

Διαβάστε περισσότερα

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

Διαβάστε περισσότερα

ιαχείριση ικτύων ρ.αρίστη Γαλάνη

ιαχείριση ικτύων ρ.αρίστη Γαλάνη Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος 2016-2017 Simple Network Management Protocol (SNMP) Simple Network Management Protocol (Απλό Πρωτόκολλο ιαχείρισης ικτύων):

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (Ι) Υλοποιήσεις Client Server Το Πρωτόκολλο SNMP Δομή SNMP Agent - MIB

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (Ι) Υλοποιήσεις Client Server Το Πρωτόκολλο SNMP Δομή SNMP Agent - MIB ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (Ι) Υλοποιήσεις Client Server Το Πρωτόκολλο SNMP Δομή SNMP Agent - MIB Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 24/11/2015 Άδεια Χρήσης

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) TEI Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) Ανάλυση Πρωτοκόλλων Τομέας Τηλεπικοινωνιών και Δικτύων Δρ. Αναστάσιος Πολίτης Καθηγητής Εφαρμογών anpol@teiser.gr

Διαβάστε περισσότερα

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΤΟ ΠΡΩΤΟΚΟΛΛΟ SNMP. Β. Μάγκλαρης 01/12/2014

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΤΟ ΠΡΩΤΟΚΟΛΛΟ SNMP. Β. Μάγκλαρης  01/12/2014 ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΤΟ ΠΡΩΤΟΚΟΛΛΟ SNMP Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 01/12/2014 Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

Διαβάστε περισσότερα

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

Διαβάστε περισσότερα

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP Ημερομηνία παράδοσης 2 εβδομάδες μετά την έναρξη της άσκησης 1. Γενικά για το TCP/IP Η ομάδα πρωτοκόλλων TCP/IP επιτρέπει σε υπολογιστές όλων των μεγεθών, από

Διαβάστε περισσότερα

HP Network Node Manager (NNM) Tutorial

HP Network Node Manager (NNM) Tutorial Telecommunication Networks and integrated Services Laboratory tns.ds.unipi.gr HP Network Node Manager (NNM) Tutorial Καθηγ. Π. Δεμέστιχας, Δρ.K. Τσαγκάρης, Δρ. Μ. Λογοθέτης, Δ. Καρβουνάς Email: {pdemest,

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο Πρωτόκολλα Διαδικτύου Μέρος 2ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Internet Protocol (IP) Στο επίπεδο δικτύου της τεχνολογίας TCP/IP, συναντάμε το πρωτόκολλο IP. Η λειτουργία του IP βασίζεται αποκλειστικά

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων Υλοποιήσεις Client Server Το Πρωτόκολλο SNMP SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων Υλοποιήσεις Client Server Το Πρωτόκολλο SNMP SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων Υλοποιήσεις Client Server Το Πρωτόκολλο SNMP SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 6/11/2017

Διαβάστε περισσότερα

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου Α5.1 Εισαγωγή στα Δίκτυα Α Λυκείου Εισαγωγή Δίκτυο Υπολογιστών (Computer Network) είναι μια ομάδα από δύο ή περισσότερους υπολογιστές ή άλλες συσκευές που συνδέονται μεταξύ τους με σκοπό να ανταλλάσσουν

Διαβάστε περισσότερα

Επίπεδο δικτύου IP διευθυνσιοδότηση

Επίπεδο δικτύου IP διευθυνσιοδότηση Επίπεδο δικτύου IP διευθυνσιοδότηση (πες μου την IP σου να σου πω ποιος είσαι) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής

Διαβάστε περισσότερα

Network Address Translation (NAT)

Network Address Translation (NAT) HY335Α Δίκτυα Υπολογιστών Xειμερινό Εξάμηνο 2016-2017 Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Network Address Translation (NAT) Network Layer Private IP Addresses Πρόβλημα: o χώρος των ΙΡ διευθύνσεων

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Διαχείριση και Ασφάλεια Τηλεπικοινωνιακών Συστημάτων

Διαχείριση και Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Διαχείριση και Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Διαχείριση Δικτύων Ανάγκη για Συστήματα Διαχείρισης ΠΑΡΑΓΟΝΤΕΣ γεωγραφική επέκταση δικτύων ετερογένεια δικτύων πλήθος και πολυπλοκότητα εφαρμογών υποστήριξη

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (ΙI) SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων NETCONF (Network Configuration Protocol)

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (ΙI) SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων NETCONF (Network Configuration Protocol) ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (ΙI) SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων NETCONF (Network Configuration Protocol) Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 24/11/2015

Διαβάστε περισσότερα

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα

Στρατηγικές Ασφάλειας

Στρατηγικές Ασφάλειας Στρατηγικές Ασφάλειας Ασφάλεια Πληροφοριακών Συστημάτων. Διδάσκων: Σ. Κοντογιάννης Least/(Most) Privileges Defense in Depth Συγκεντρωτική Στρατηγική Weakest Link Strategy Fail Safe Stance Fail Safe Stance

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων (επανάληψη) NETCONF (Network Configuration Protocol)

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων (επανάληψη) NETCONF (Network Configuration Protocol) ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων NETCONF (Network Configuration Protocol) Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 13/11/2017

Διαβάστε περισσότερα

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

Διαβάστε περισσότερα

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

Διαβάστε περισσότερα

Δίκτυα Η/Υ στην Επιχείρηση

Δίκτυα Η/Υ στην Επιχείρηση Δίκτυα Η/Υ στην Επιχείρηση Δικτυακά πρωτόκολλα και εφαρμογές, Δρομολόγηση Γκάμας Βασίλειος, Εργαστηριακός Συνεργάτης Μοντέλο πελάτη-εξυπηρετητή Προκειμένου να χρησιμοποιήσουμε μια υπηρεσία του Internet

Διαβάστε περισσότερα

Εξοικείωση με τις εντολές ipconfig και ping

Εξοικείωση με τις εντολές ipconfig και ping Διαχείριση Δικτύων Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Ηπείρου Εργαστηριακή Άσκηση Εξοικείωση με τις εντολές ipconfig και ping Σημείωση : Η άσκηση αναφέρεται σε εντολές των Windows. Υπάρχουν παρόμοιες

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 9: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Οι Διαδικτυακές ανάγκες μιας εταιρείας σε διευθύνσεις IPv4, έχουν ως εξής: Τμήμα Διοίκησης Προσωπικού & Οικονομικών Σύνολο απαιτούμενων διευθύνσεων

Οι Διαδικτυακές ανάγκες μιας εταιρείας σε διευθύνσεις IPv4, έχουν ως εξής: Τμήμα Διοίκησης Προσωπικού & Οικονομικών Σύνολο απαιτούμενων διευθύνσεων Άσκηση 1 Ethernet protocol Οι Διαδικτυακές ανάγκες μιας εταιρείας σε διευθύνσεις IPv4, έχουν ως εξής: Τμήμα Πωλήσεων Τμήμα Ανάπτυξης Προϊόντων Τμήμα Διοίκησης Προσωπικού & Οικονομικών Σύνολο απαιτούμενων

Διαβάστε περισσότερα

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Κεφάλαιο 7.3. Πρωτόκολλο TCP Κεφάλαιο 7.3 Πρωτόκολλο TCP Πρωτόκολλο TCP Το πρωτόκολλο Ελέγχου Μετάδοσης (Transmission Control Protocol, TCP) είναι το βασικό πρωτόκολο του Επιπέδου Μεταφοράς του μοντέλου TCP/IP. Παρέχει υπηρεσίες προσανατολισμένες

Διαβάστε περισσότερα

ΗΜΥ Εργαστηριακή Άσκηση 2

ΗΜΥ Εργαστηριακή Άσκηση 2 ΗΜΥ 316 - Εργαστηριακή Άσκηση 2 Βασικές Δυνατότητες Δικτύωσης Wireshark: Αναλυτής Πρωτοκόλλων Σκοπός της πρώτης σειράς ασκήσεων είναι, κατ αρχήν, η εξοικείωση με τις βασικές δικτυακές δυνατότητες της οικογένειας

Διαβάστε περισσότερα

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~ Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~ Στελιος Σφακιανάκης Εαρινό 2019 Αυτή η εργασία χορηγείται με άδεια Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 1 Server-side programming

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος 2016-2017 Πρότυπο διαχείρισης ISO/OSI Ένα περιβάλλον OSI μπορεί να αποτελείται από ετερογενή «ανοικτά» διασυνδεδεμένα

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Ερωτήσεις Ασκήσεις Επικοινωνίες Δεδομένων Μάθημα 3 ο Ερωτήσεις 1. Τι είναι το intranet και ποια τα πλεονεκτήματα που προσφέρει; 2. Τι δηλώνει ο όρος «TCP/IP»; 3. Να αναφέρετε τα πρωτόκολλα

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

Διαβάστε περισσότερα

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη Γκέγκα Ευρώπη egkegka@it.teithe.gr Κωστοπούλου Ειρήνη eirkost@it.teithe.gr 2 ο σε επισκεψιμότητα των χρηστών στο web καθημερινά Κοινωνικό δίκτυο με τους περισσότερους χρήστες 1 ο σε προτίμηση των φοιτητών

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΙΙ

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΙΙ ΤΕΧΝΙΚΟΣ ΔΙΚΤΥΩΝ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΙΙ Σημειώσεις 1 ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη Διαχείριση Δικτύων 1.1 Εισαγωγή Τα τελευταία χρόνια τα δίκτυα υπολογιστών και τα συστήματα κατανεμημένης επεξεργασίας

Διαβάστε περισσότερα

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP. Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

Διαβάστε περισσότερα

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 5/03/204 Συμπληρωματικές Διαφάνειες Νίκος Δημητρίου ΟΣΣ/5.03.204/Ν.Δημητρίου ΟΣΣ/5.03.204/Ν.Δημητρίου 2 ΟΣΣ/5.03.204/Ν.Δημητρίου 3 ΟΣΣ/5.03.204/Ν.Δημητρίου 4 Θεωρία Aloha/Slotted

Διαβάστε περισσότερα

Τι είναι το πρωτόκολλο Διαδικτύου (Internet Protocol, IP);

Τι είναι το πρωτόκολλο Διαδικτύου (Internet Protocol, IP); 7.5. Πρωτόκολλο IP Τι είναι το πρωτόκολλο Διαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναμα πακέτα που μεταφέρονται ανεξάρτητα

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή στα πρωτόκολλα TCP/IP και το INTERNET 2.1. Μέσα μετάδοσης, φυσικές διευθύνσεις

ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή στα πρωτόκολλα TCP/IP και το INTERNET 2.1. Μέσα μετάδοσης, φυσικές διευθύνσεις ΠΕΡΙΕΧΟΜΕΝΑ Κεφάλαιο 1 Εισαγωγή 1.0. Επισκόπηση 1.1. Δίκτυα υπολογιστών 1.2. Πρωτόκολλα δικτύων υπολογιστών 1.3. Το πρόβλημα της διαχείρισης 1.4. Μοντέλα και πρότυπα διαχείρισης 1.5. Τρόποι διακίνησης

Διαβάστε περισσότερα

Επαναληπτικές Ασκήσεις Μαθήματος

Επαναληπτικές Ασκήσεις Μαθήματος Επαναληπτικές Ασκήσεις Μαθήματος Ερώτηση: EAM1. Ποιο από τα παρακάτω χαρακτηριστικά δεν αποτελεί κριτήριο κατηγοριοποίησης δικτύων. Κλίμακα Τεχνολογία μετάδοσης Πλήθος τερματικών εντός του δικτύου Ερώτηση:

Διαβάστε περισσότερα

Εργαστήριο Δικτύων Υπολογιστών

Εργαστήριο Δικτύων Υπολογιστών Εργαστήριο Δικτύων Υπολογιστών 2 η Διάλεξη: TCP/UDP Δικτυακά πρωτόκολλα / εφαρμογές Ports Unix δικτυακές εντολές Transmission Control Protocol - TCP Πρωτόκολλο Mεταφοράς RFC 793 [Postel 1981] Xρησιμοποιεί

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

Διαβάστε περισσότερα

Β. Μάγκλαρης.

Β. Μάγκλαρης. ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων Υλοποιήσεις Client Server Το Πρωτόκολλο SNMP SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων NETCONF (Network Configuration Protocol) Β. Μάγκλαρης maglaris@netmode.ntua.gr

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ ΔΙΑΛΕΞΗ 2 ΔΙΔΑΣΚΩΝ: ΑΝΑΡΓΥΡΟΣ ΣΙΔΕΡΗΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ ΤΕΙ ΚΡΗΤΗΣ ΠΡΩΤΟΚΟΛΛΟ ΔΙΑΔΙΚΤΥΟΥ

Διαβάστε περισσότερα

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Ethernet Ethernet ΙΕΕΕ CSMA/CD Ethernet Τα τοπικά δίκτυα είναι συνήθως τύπου Ethernet ή λέμε ότι ακολουθούν το πρότυπο ΙΕΕΕ 802.3 Ακολουθούν το μηχανισμό CSMA/CD (Πολλαπλή πρόσβαση με Ακρόαση Φέροντος και Ανίχνευση Συγκρούσεων). Πολλαπλή

Διαβάστε περισσότερα

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Β5.1.2 Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Τι θα μάθουμε σήμερα: Να ορίζουμε τι είναι πρωτόκολλο επικοινωνίας Να εξηγούμε τη χρησιμότητα των πρωτοκόλλων επικοινωνίας Να ονομάζουμε τα σημαντικότερα

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... xiii

Περιεχόμενα. Πρόλογος... xiii Περιεχόμενα Πρόλογος... xiii Κεφάλαιο 1 ο Εισαγωγή στις τεχνολογίες Διαδικτύου... 1 1.1 Σύντομη ιστορία του Διαδικτύου... 3 1.2 Σύνδεση στο Διαδίκτυο μέσω Παρόχου (ISP)... 6 1.3 Μοντέλα Επικοινωνίας...

Διαβάστε περισσότερα

Το αίτημα (http request) για την αποστολή μηνύματος γίνεται στον server μας στο URL http://www.mysms.com.gr/api.php, με τις ακόλουθες μεταβλητές.

Το αίτημα (http request) για την αποστολή μηνύματος γίνεται στον server μας στο URL http://www.mysms.com.gr/api.php, με τις ακόλουθες μεταβλητές. ΠΑΛΑΙΩΝ ΠΑΤΡΩΝ ΓΕΡΜΑΝΟΥ 33 (ΜΕΓΑΡΟ ΑΒΕΡΩΦ), Τ.Κ. 54622, ΘΕΣΣΑΛΟΝΙΚΗ ΤΗΛ. ΚΕΝΤΡΟ: 2310 231 557, ΦΑΞ: 2310 231 552 URL: www.mysms.com.gr ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ: support@mysms.com.gr 1. Αποστολή SMS Το αίτημα

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ Πτυχιακή εργασία ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΔΕΙΚΤΩΝ ΚΑΤΑΝΑΛΩΣΗΣ ΕΝΕΡΓΕΙΑΣ ΣΤΑ ΑΝΤΛΙΟΣΤΑΣΙΑ ΤΟΥ ΤΜΗΜΑΤΟΣ ΑΝΑΠΤΥΞΕΩΣ ΥΔΑΤΩΝ Γεωργίου

Διαβάστε περισσότερα

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Γ Τάξη Ε.Π.Α.Λ.

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Γ Τάξη Ε.Π.Α.Λ. ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ 2016 Γ Τάξη Ε.Π.Α.Λ. ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις και δίπλα το γράµµα Σ, αν είναι σωστή, ή το γράµµα

Διαβάστε περισσότερα

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 Το δίκτυο ARPANET ήταν ένα δίκτυο μεταγωγής πακέτων που χρηματοδοτήθηκε από το υπουργείο άμυνας των Η.Π.Α. στα τέλη της δεκαετίας του '60. 2 / 26 Από την αρχή κύριος

Διαβάστε περισσότερα

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 1 / 32 Σε έναν κόμβο ο οποίος επιθυμεί να αποστείλει δεδομένα σε κάποιον

Διαβάστε περισσότερα

(C) 2010 Pearson Education, Inc. All rights reserved.

(C) 2010 Pearson Education, Inc. All rights reserved. Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.

Διαβάστε περισσότερα

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΣΑΒΒΑΤΟ 16 ΙΟΥΝΙΟΥ 2018

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΣΑΒΒΑΤΟ 16 ΙΟΥΝΙΟΥ 2018 ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΣΑΒΒΑΤΟ 16 ΙΟΥΝΙΟΥ 2018 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ / ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Μάθημα 8ο Δικτύωση TCP/IP Μιχαηλίδης Παναγιώτης Περιεχόμενα Δικτύωση TCP/IP Τι είναι το TCP/IP; Επίπεδα, διευθύνσεις, ΝΑΤ Πρωτόκολλα: ARP, DHCP TCP/IP H πιο κοινή

Διαβάστε περισσότερα

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δίκτυα Υπολογιστών Στόχοι 1 Να εξηγήσουμε τι είναι τα δίκτυα υπολογιστών, ποιες είναι οι βασικές κατηγορίες τους και ποιες οι πιο συνηθισμένες τοπολογίες

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 10: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7]

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7] Στόχοι ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 Να εξηγήσουμε τι είναι τα δίκτυα υπολογιστών, ποιες είναι οι βασικές κατηγορίες τους και ποιες οι πιο συνηθισμένες τοπολογίες τους. Να περιγράψουμε

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP Αντώνης Χρυσόπουλος Κατερίνα Κυπριώτη Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP Για να γίνουμε όλοι καλύτεροι άνθρωποι Τι έχει το μενού σήμερα??? 1. Τι είναι η PHP??? Τι είναι

Διαβάστε περισσότερα

Τεχνικός Εφαρμογών Πληροφορικής

Τεχνικός Εφαρμογών Πληροφορικής Τεχνικός Εφαρμογών Πληροφορικής ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: Κανελλοπούλου Χριστίνα_ΠΕ19 Πληροφορικής Περιεχόμενα 1.Τι είναι η Php; 2.Πως γίνετε η γραφή

Διαβάστε περισσότερα

Δίκτυα Η/Υ Θεωρία. Διάλεξη 2η

Δίκτυα Η/Υ Θεωρία. Διάλεξη 2η Δίκτυα Η/Υ Θεωρία Διάλεξη 2η Kάρτες Δικτύωσης (NIC-Network Interface Controller) Βασικές εντολές δρομολόγησης και ανίχνευσης Η κάρτα δικτύου συνδέει τον υπολογιστή στο τοπικό δίκτυο παράγει και λαμβάνει

Διαβάστε περισσότερα

ΣΥΝΔΕΣΗ ΚΑΤΑΓΡΑΦΙΚΟΥ ΣΤΟ INTERNET

ΣΥΝΔΕΣΗ ΚΑΤΑΓΡΑΦΙΚΟΥ ΣΤΟ INTERNET ΣΥΝΔΕΣΗ ΚΑΤΑΓΡΑΦΙΚΟΥ ΣΤΟ INTERNET 1) Συνδέουμε το καταγραφικό και τον Η/Υ με το ίδιο ADSL Router. 2) Έπειτα θα πρέπει να βρούμε την IP διεύθυνση που έχει το Router. Για να το κάνουμε αυτό, ακολουθούμε

Διαβάστε περισσότερα

Άσκηση 1 η Τοπικά Δίκτυα Δεδομένων (LANs)

Άσκηση 1 η Τοπικά Δίκτυα Δεδομένων (LANs) Άσκηση 1 η Τοπικά Δίκτυα Δεδομένων (LANs) 1. Σκοπός της άσκησης Η τεχνική CSMA εφαρμόζεται σήμερα στα περισσότερα ενσύρματα πολλαπλής πρόσβασης τοπικά δίκτυα - μικρής έκτασης - ως η οικονομικότερη και

Διαβάστε περισσότερα

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς(Transport layer) Επίπεδο εφαρμογής (Application layer): Συντονισμός

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (ΙΙ) Πρωτόκολλα & Αρχιτεκτονικές Firewalls Anomaly & Intrusion Detection Systems (IDS)

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (ΙΙ) Πρωτόκολλα & Αρχιτεκτονικές  Firewalls Anomaly & Intrusion Detection Systems (IDS) ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (ΙΙ) Πρωτόκολλα & Αρχιτεκτονικές email Firewalls Anomaly & Intrusion Detection Systems (IDS) Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 30/11/2015

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

Διαβάστε περισσότερα

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον Κεφάλαιο 2 Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον Εισαγωγή Μέσα αποθήκευσης Δίκτυα υπολογιστών Βάσεις δεδομένων Δίκτυα Υπολογιστών Σύνολο από υπολογιστές ή συσκευές διασυνδεδεμένες

Διαβάστε περισσότερα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα Στόχοι κεφαλαίου ίκτυα υπολογιστών (Κεφαλαιο 15 στο βιβλιο) Περιγραφή των κύριων θεµάτων σχετικά µε τα δίκτυα υπολογιστών Αναφορά στα διάφορα είδη δικτύων Περιγραφή των διαφόρων τοπολογιών των τοπικών

Διαβάστε περισσότερα

7.2.2 Σχέση OSI και TCP/IP

7.2.2 Σχέση OSI και TCP/IP Κεφάλαιο 7 7.2.2 Σχέση OSI και TCP/IP Σελ. 226-230 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr ΕΣΠΕΡΙΝΟ ΕΠΑΛ Κομοτηνής http://diktya-epal-g.ggia.info/ Γνωστό μοντέλο OSI διασύνδεσης ανοικτών συστημάτων.

Διαβάστε περισσότερα

Κατανόηση των βασικών σημείων των διευθύνσεων TCP/IP και της

Κατανόηση των βασικών σημείων των διευθύνσεων TCP/IP και της Page 1 of 8 Αναγν. άρθρου: 164015 - Τελευταία αναθεώρηση: Τρίτη, 29 Μαΐου 2007 - Αναθεώρηση: 4.2 Κατανόηση των βασικών σημείων των διευθύνσεων TCP/IP και της δημιουργίας υποδικτύων Συμβουλή συστήματος

Διαβάστε περισσότερα

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΕΓΚΑΤΑΣΤΑΣΗ & ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ INTERNET INFORMATION SERVER (IIS) ΓΙΑ ΥΛΟΠΟΙΗΣΗ ΥΠΗΡΕΣΙΩΝ ΔΙΑΔΙΚΤΥΟΥ (WEB SERVICES) ΣΠΟΥΔΑΣΤΡΙΑ:Μπάρδα Μαρία ΕΙΣΗΓΗΤΗΣ: Τσιαντής

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

Διαβάστε περισσότερα

Διαχείριση Δικτύων Εργαστήριο (Διαφάνειες)

Διαχείριση Δικτύων Εργαστήριο (Διαφάνειες) Διαχείριση Δικτύων Εργαστήριο (Διαφάνειες) 2016 Εντολή: ping Απλή και βασική εντολή ελέγχου σύνδεσης με κάποια IP διεύθυνση (πχ. υπολογιστή) ping Στέλνει επαναλαμβανόμενα μηνύματα στην IP

Διαβάστε περισσότερα

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP Πρωτόκολλα επικοινωνίας Ορισμός Σύνολα προσυμφωνημένων κανόνων που απαιτούνται για τον καθορισμό του τρόπου με τον οποίο επιτυγχάνεται η ανταλλαγή δεδομένων, και επομένως

Διαβάστε περισσότερα

CS 150 Assignment 2. Assignment 2 Overview Opening Files Arrays ( and a little bit of pointers ) Strings and Comparison Q/A

CS 150 Assignment 2. Assignment 2 Overview Opening Files Arrays ( and a little bit of pointers ) Strings and Comparison Q/A CS 150 Assignment 2 Assignment 2 Overview Opening Files Arrays ( and a little bit of pointers ) Strings and Comparison Q/A CS 150 Assignment 2 Overview Ζητείται ένα πρόγραμμα το διαβάζει από ένα αρχείο

Διαβάστε περισσότερα

Αν παρ όλα αυτά αντιμετωπίζετε πρόβλημα, επικοινωνήστε με το Κέντρο Δικτύου της ΑΣΠΑΙΤΕ Τηλ 210 2896709, 210 2896722, 210 2896721, noc@aspete.

Αν παρ όλα αυτά αντιμετωπίζετε πρόβλημα, επικοινωνήστε με το Κέντρο Δικτύου της ΑΣΠΑΙΤΕ Τηλ 210 2896709, 210 2896722, 210 2896721, noc@aspete. H υπηρεσία VPN προσφέρει τη δυνατότητα σε χρήστες της ΑΣΠΑΙΤΕ που συνδέονται στο Internet από άλλους φορείς (πχ ISP, άλλα ιδρύματα, κτλ) να αποκτούν ασφαλή πρόσβαση στο δίκτυο και στις υπηρεσίες της Σχολής.

Διαβάστε περισσότερα

α) η καταγραφή και η σύλληψη της δικτυακής κίνησης (capture) και β) η ανάλυση της δικτυακής κίνησης.

α) η καταγραφή και η σύλληψη της δικτυακής κίνησης (capture) και β) η ανάλυση της δικτυακής κίνησης. Εργαστηριακή Άσκηση 3 Σκοπός της τρίτης σειράς ασκήσεων είναι η γνωριµία µε τον αναλυτή πρωτοκόλλων Wireshark. Το πρόγραµµα Wireshark είναι ένας ανιχνευτής πακέτων (packet sniffer) και διατίθεται ως ανοιχτό

Διαβάστε περισσότερα

Εισαγωγή στη Βιοπληροφορική

Εισαγωγή στη Βιοπληροφορική Εισαγωγή στη Βιοπληροφορική Αλέξανδρος Κ. Δημόπουλος Πρόγραμμα Μεταπτυχιακών Σπουδών Τεχνολογίες Πληροφορικής στην Ιατρική και τη Βιολογία (ΤΠΙΒ) Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό

Διαβάστε περισσότερα

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

Διαβάστε περισσότερα

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Ορισμός των Web Services

Διαβάστε περισσότερα

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

Διαβάστε περισσότερα

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

Διαβάστε περισσότερα

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Διαβάστε περισσότερα

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade Για να ελέγξετε το λογισμικό που έχει τώρα η συσκευή κάντε κλικ Menu > Options > Device > About Device Versions. Στο πιο κάτω παράδειγμα η συσκευή έχει έκδοση λογισμικού 6.0.0.546 με πλατφόρμα 6.6.0.207.

Διαβάστε περισσότερα

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα 1.7 - Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Πρωτόκολλο είναι ένα σύνολο κανόνων που πρέπει να ακολουθήσουν όλοι οι σταθμοί εργασίας σε ένα δίκτυο ώστε να μπορούν

Διαβάστε περισσότερα

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο της

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

6.2 Υπηρεσίες Διαδικτύου

6.2 Υπηρεσίες Διαδικτύου 6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151) Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151) 2 Η ΕΡΓΑΣΤΗΡΙΑΚΗ ΔΙΑΛΕΞΗ (WIRESHARK ΠΡΩΤΟΚΟΛΛΑ ΕΦΑΡΜΟΓΗΣ) Υπεύθυνος καθηγητής: Άγγελος Ρούσκας Βοηθός: Υ.Δ. Ευθύμης Οικονόμου 1 Περιεχόμενα παρουσίασης HTTP συνέχεια

Διαβάστε περισσότερα

Ερωτήσεις / Απαντήσεις Πιστοποίησης (Επικοινωνίες Δεδομένων)

Ερωτήσεις / Απαντήσεις Πιστοποίησης (Επικοινωνίες Δεδομένων) Ερωτήσεις / Απαντήσεις Πιστοποίησης (Επικοινωνίες Δεδομένων) 1. Ποια είναι η διαφορά μεταξύ ψηφιακής και αναλογικής μετάδοσης; Σχεδιάστε ένα αναλογικό και ένα ψηφιακό σήμα. Αναλογικά είναι τα σήματα τα

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα. Javascript LCR example

Κατανεμημένα Συστήματα. Javascript LCR example Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate

Διαβάστε περισσότερα